diff options
| author | Adam Soltys <[email protected]> | 2024-02-14 12:49:23 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-02-14 12:49:23 -0800 |
| commit | 842d9a6363da0a9ba5e586f61958303b907058ba (patch) | |
| tree | 61601dcb65ba46f739bace98b99bed75d59a8262 /src | |
| parent | 68a4edb7b236ca2114f65f94f1ba40d671109cb3 (diff) | |
| download | coinos-ui-842d9a6363da0a9ba5e586f61958303b907058ba.tar.gz coinos-ui-842d9a6363da0a9ba5e586f61958303b907058ba.zip | |
bump fee button
Diffstat (limited to 'src')
| -rw-r--r-- | src/locales/en.json | 1 | ||||
| -rw-r--r-- | src/routes/(app)/payment/[id]/+page.server.js | 3 | ||||
| -rw-r--r-- | src/routes/(app)/payment/[id]/+page.svelte | 59 | ||||
| -rw-r--r-- | src/routes/(app)/payment/[id]/bump/+server.js | 12 |
4 files changed, 66 insertions, 9 deletions
diff --git a/src/locales/en.json b/src/locales/en.json index c4a272b6..4fad56d6 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -284,6 +284,7 @@ } }, "payments": { + "bump": "Bump fee", "networkFee": "Network fee", "platformFee": "Platform fee", "fastest": "Fastest", diff --git a/src/routes/(app)/payment/[id]/+page.server.js b/src/routes/(app)/payment/[id]/+page.server.js index 5a364c65..1dfc0c09 100644 --- a/src/routes/(app)/payment/[id]/+page.server.js +++ b/src/routes/(app)/payment/[id]/+page.server.js @@ -1,6 +1,7 @@ import { auth, get } from "$lib/utils"; -export async function load({ cookies, params }) { +export async function load({ cookies, depends, params }) { + depends("app:payments"); let payment = await get(`/payments/${params.id}`, auth(cookies)); return { payment }; } diff --git a/src/routes/(app)/payment/[id]/+page.svelte b/src/routes/(app)/payment/[id]/+page.svelte index dbaea042..1f0e0308 100644 --- a/src/routes/(app)/payment/[id]/+page.svelte +++ b/src/routes/(app)/payment/[id]/+page.svelte @@ -10,6 +10,7 @@ fiat, post, sats, + fail, success, types, } from "$lib/utils"; @@ -20,6 +21,31 @@ export let data; let { user, payment: p } = data; + $: refresh(data); + let refresh = (d) => { + ({ user, payment: p } = d); + ({ + id, + hash, + amount, + created, + confirmed, + rate, + type, + ref, + tip, + ourfee, + fee, + currency, + } = p); + + console.log("FEE", fee); + + if (amount > 0) [txid, vout] = ref.split(":"); + else txid = hash; + + if (!fee) fee = 0; + }; let { username } = user; let { @@ -27,6 +53,7 @@ hash, amount, created, + confirmed, rate, type, ref, @@ -47,7 +74,13 @@ success("Printing!"); }; - fee = fee || 0; + let bump = async () => { + try { + await post(`/payment/${id}/bump`, { id }); + } catch (e) { + fail(e.message); + } + }; let txid, vout; if (amount > 0) [txid, vout] = ref.split(":"); @@ -178,8 +211,20 @@ </div> {/if} - {#if user.hasprinter} - <div> + <div class="flex gap-2"> + {#if amount < 0 && !confirmed} + <button + class="rounded-full border py-3 px-6 hover:opacity-80 flex w-full md:w-60" + on:click={bump} + > + <div class="mx-auto flex"> + <Icon icon="clock" style="my-auto h-6 mr-2" /> + <div class="my-auto mt-1 text-base">{$t("payments.bump")}</div> + </div> + </button> + {/if} + + {#if user.hasprinter} <button class="rounded-full border py-3 px-6 hover:opacity-80 flex w-full md:w-60" on:click={print} @@ -189,9 +234,7 @@ <div class="my-auto mt-1 text-base">{$t("payments.print")}</div> </div> </button> - </div> - {:else} - <div> + {:else} <a href={`/payment/${id}/plain`}> <button class="rounded-full border py-3 px-6 hover:opacity-80 flex w-full md:w-60" @@ -202,6 +245,6 @@ </div> </button> </a> - </div> - {/if} + {/if} + </div> </div> diff --git a/src/routes/(app)/payment/[id]/bump/+server.js b/src/routes/(app)/payment/[id]/bump/+server.js new file mode 100644 index 00000000..766f537f --- /dev/null +++ b/src/routes/(app)/payment/[id]/bump/+server.js @@ -0,0 +1,12 @@ +import { auth, post } from "$lib/utils"; +import { json, error } from "@sveltejs/kit"; + +export async function POST({ cookies, request }) { + let body = await request.json(); + try { + let res = await post("/replace", body, auth(cookies)); + return json(res); + } catch (e) { + error(400, e.message); + } +} |
