From 4e823ef79d2ebce6e0f022edd1a40490278f2121 Mon Sep 17 00:00:00 2001 From: Tommy Verrall Date: Mon, 16 Oct 2023 13:03:05 +0200 Subject: [PATCH] amend a few things - reintroduce the doFetch after changing code swept it away... - prevent multiple submission at the same time - remove toggle for the time being --- wasm/mix-fetch/internal-dev/index.html | 4 +- wasm/mix-fetch/internal-dev/index.js | 60 ++++++++++++++------------ wasm/mix-fetch/internal-dev/worker.js | 7 +-- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/wasm/mix-fetch/internal-dev/index.html b/wasm/mix-fetch/internal-dev/index.html index 6186b4b11c..563d629e94 100644 --- a/wasm/mix-fetch/internal-dev/index.html +++ b/wasm/mix-fetch/internal-dev/index.html @@ -136,6 +136,8 @@ />
+ +
diff --git a/wasm/mix-fetch/internal-dev/index.js b/wasm/mix-fetch/internal-dev/index.js index b7295d2d6a..823476b6ce 100644 --- a/wasm/mix-fetch/internal-dev/index.js +++ b/wasm/mix-fetch/internal-dev/index.js @@ -15,7 +15,7 @@ class WebWorkerClient { worker = null; - constructor() { + constructor(onComplete) { this.worker = new Worker("./worker.js"); this.worker.onmessage = (ev) => { @@ -26,6 +26,9 @@ class WebWorkerClient { displayReceivedRawString(rawString); break; } + if(onComplete) { + onComplete(); + } } }; } @@ -48,51 +51,52 @@ class WebWorkerClient { let client = null; async function main() { - client = new WebWorkerClient(); + client = new WebWorkerClient(() => { + fetchButton.disabled = false; + }); + + const fetchButton = document.querySelector("#fetch-button"); + + fetchButton.onclick = function (e) { + if (fetchButton.disabled) { + alert("Processing... Please wait!"); + return; + } - const fetchButtonText = document.querySelector("#fetch-button"); - fetchButtonText.onclick = function (e) { document.getElementById("output").innerHTML = ""; + if ($("#fetch_payload").val().trim() === "") { e.preventDefault(); let errorDiv = document.createElement("div"); let paragraph = document.createElement("p"); paragraph.style.color = "red"; - paragraph.innerText = "please enter a valid request!!"; + paragraph.innerText = "Please enter a valid request!!"; errorDiv.appendChild(paragraph); document.getElementById("output").appendChild(errorDiv); return false; } - doFetch(); + fetchButton.disabled = true; + + client.doFetch($("#fetch_payload").val().trim()); }; } async function doFetch() { - const url = document.getElementById("fetch_payload").value; - const returnJson = document.getElementById("returnJsonToggle").checked; + document + .getElementById("fetch-button") + .addEventListener("click", async () => { + const url = document.getElementById("fetch_payload").value; + //introduce toggle in the future + //const returnJson = document.getElementById("returnJsonToggle").checked; - displaySend(`Fetching: ${url}`); - - try { - const response = await fetch(url); - - if (!response.ok) { - throw new Error(`HTTP error! Status: ${response.status}`); - } - - let data; - if (returnJson) { - data = await response.json(); - } else { - data = await response.text(); - } - - displayReceivedRawString(data); - } catch (error) { - console.error("There was a problem fetching the data:", error); - } + try { + await client.doFetch(url); + } catch (error) { + console.error("There was a problem fetching the data:", error); + } + }); } /** diff --git a/wasm/mix-fetch/internal-dev/worker.js b/wasm/mix-fetch/internal-dev/worker.js index 48d9d57372..352eabba85 100644 --- a/wasm/mix-fetch/internal-dev/worker.js +++ b/wasm/mix-fetch/internal-dev/worker.js @@ -181,11 +181,6 @@ async function nativeSetup() { ], }; - console.log(extra); - console.log(preferredGateway); - console.log(validator); - console.log(preferredNetworkRequester); - await setupMixFetch({ preferredNetworkRequester, preferredGateway: preferredGateway, @@ -311,7 +306,7 @@ async function main() { goWasmSetLogging("trace"); // test mixFetch - // await testMixFetch(); + await testMixFetch(); // // // run test on simplified and dedicated tester: // // await testWithTester()