aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-02-14 12:49:23 -0800
committerAdam Soltys <[email protected]>2024-02-14 12:49:23 -0800
commit842d9a6363da0a9ba5e586f61958303b907058ba (patch)
tree61601dcb65ba46f739bace98b99bed75d59a8262 /src
parent68a4edb7b236ca2114f65f94f1ba40d671109cb3 (diff)
downloadcoinos-ui-842d9a6363da0a9ba5e586f61958303b907058ba.tar.gz
coinos-ui-842d9a6363da0a9ba5e586f61958303b907058ba.zip
bump fee button
Diffstat (limited to 'src')
-rw-r--r--src/locales/en.json1
-rw-r--r--src/routes/(app)/payment/[id]/+page.server.js3
-rw-r--r--src/routes/(app)/payment/[id]/+page.svelte59
-rw-r--r--src/routes/(app)/payment/[id]/bump/+server.js12
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);
+ }
+}