aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-02-21 15:23:12 -0800
committerAdam Soltys <[email protected]>2024-02-21 15:23:12 -0800
commite447e9c9d76af97cef42ad7e24ddb9250d579b58 (patch)
tree451b2672401f83659cd30ff568f4b04c5fcc0897 /src
parent935b3a772e58fd50e3103fbbdb3bd1ba35c49a9f (diff)
downloadcoinos-ui-e447e9c9d76af97cef42ad7e24ddb9250d579b58.tar.gz
coinos-ui-e447e9c9d76af97cef42ad7e24ddb9250d579b58.zip
fix back button, abort long requests
Diffstat (limited to 'src')
-rw-r--r--src/lib/utils.js17
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/+page.svelte9
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.js1
3 files changed, 20 insertions, 7 deletions
diff --git a/src/lib/utils.js b/src/lib/utils.js
index 53437f56..d3ad0da3 100644
--- a/src/lib/utils.js
+++ b/src/lib/utils.js
@@ -41,16 +41,24 @@ export let get = (url, headers = {}) => {
});
};
-export let post = (url, body, headers) => {
+export let post = async (url, body, headers, timeout = 8000) => {
headers = {
- ...headers,
"content-type": "application/json",
accept: "application/json",
+ ...headers,
};
- return fetch(base + url, {
+
+ let controller = new AbortController();
+ console.log(controller, timeout);
+ let id = setTimeout(() => {
+ controller.abort(new Error("Operation timed out"));
+ }, timeout);
+
+ let response = await fetch(base + url, {
method: "POST",
body: JSON.stringify(body),
headers,
+ signal: controller.signal,
})
.then(async (r) => {
if (r.ok) return r.text();
@@ -77,6 +85,9 @@ export let post = (url, body, headers) => {
return body;
});
+
+ clearTimeout(id);
+ return response;
};
export let copy = (text) => {
diff --git a/src/routes/(app)/send/bitcoin/[address]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/+page.svelte
index bd54cf83..84f14c39 100644
--- a/src/routes/(app)/send/bitcoin/[address]/+page.svelte
+++ b/src/routes/(app)/send/bitcoin/[address]/+page.svelte
@@ -4,13 +4,13 @@
import Numpad from "$comp/Numpad.svelte";
import { page } from "$app/stores";
import { rate } from "$lib/store";
- import { back, fail, s } from "$lib/utils";
+ import { fail, s } from "$lib/utils";
export let data;
- let { rates } = data;
+ let { rates, user } = data;
let { address } = $page.params;
- let { balance, currency } = data.user;
+ let { balance, currency, username } = user;
let amount = 0;
let submit, fiat;
@@ -24,13 +24,14 @@
};
</script>
+<a href="/send">
<button
type="button"
class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80"
- on:click={back}
>
<Icon icon="arrow-left" style="w-10" />
</button>
+ </a>
<div class="container px-4 max-w-xl mx-auto space-y-5 text-center">
<h1 class="text-3xl md:text-4xl font-semibold mb-2">{$t("payments.send")}</h1>
diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.js b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.js
index 318e33c4..9d86537d 100644
--- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.js
+++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.js
@@ -26,6 +26,7 @@ export const actions = {
try {
let r = await post("/bitcoin/send", await fd(request), auth(cookies));
} catch (e) {
+ console.log("problem sending bitcoin", e);
return fail(400, { address, amount, feeRate, message: e.message });
}