aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-12-22 12:57:14 -0800
committerAdam Soltys <[email protected]>2023-12-22 12:57:14 -0800
commit936bb881f5fd34eafe1197fc5e2ab16e6f4ed6f3 (patch)
treec73333d7effe0622d949414bde6b11765dde35de
parenta4400f714bf04ae40a94cfa1de810edc2611222c (diff)
downloadcoinos-ui-936bb881f5fd34eafe1197fc5e2ab16e6f4ed6f3.tar.gz
coinos-ui-936bb881f5fd34eafe1197fc5e2ab16e6f4ed6f3.zip
show ln platform fee
-rw-r--r--src/locales/en.json4
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte2
-rw-r--r--src/routes/(app)/send/invoice/[id]/+page.server.js1
-rw-r--r--src/routes/(app)/send/invoice/[id]/+page.svelte16
-rw-r--r--src/routes/(app)/send/lightning/[payreq]/+page.server.js6
-rw-r--r--src/routes/(app)/send/lightning/[payreq]/+page.svelte64
-rw-r--r--src/routes/(app)/send/user/[username]/[...amount]/+page.server.js8
7 files changed, 70 insertions, 31 deletions
diff --git a/src/locales/en.json b/src/locales/en.json
index 64b72ded..03a5e06b 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -273,7 +273,7 @@
},
"payments": {
"networkFee": "Network fee",
- "ourFee": "Our fee",
+ "platformFee": "Platform fee",
"fastest": "Fastest",
"fast": "Fast",
"medium": "Medium",
@@ -298,7 +298,7 @@
"details": "Transaction Details",
"header": "Payments",
"preimage": "Proof of payment",
- "maxfee": "Max fee",
+ "maxfee": "Max routing fee",
"type": "Type",
"time": "Time",
"sent": "Sent",
diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
index 045c44d6..a5811e3c 100644
--- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
+++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
@@ -102,7 +102,7 @@
{#if ourfee}
<div class="text-center">
- <h2 class="text-secondary text-lg">{$t("payments.ourFee")}</h2>
+ <h2 class="text-secondary text-lg">{$t("payments.platformFee")}</h2>
<div class="flex flex-wrap gap-4 justify-center">
<div class="my-auto">
diff --git a/src/routes/(app)/send/invoice/[id]/+page.server.js b/src/routes/(app)/send/invoice/[id]/+page.server.js
index 39f2a5dd..88017362 100644
--- a/src/routes/(app)/send/invoice/[id]/+page.server.js
+++ b/src/routes/(app)/send/invoice/[id]/+page.server.js
@@ -20,6 +20,7 @@ export async function load({ params: { id }, parent, url }) {
redirect(307, `/${recipient.username}/invoice/${id}/tip`);
if (recipient.username === user.username)
error(500, { message: "Cannot send to self" });
+
return {
amount,
address,
diff --git a/src/routes/(app)/send/invoice/[id]/+page.svelte b/src/routes/(app)/send/invoice/[id]/+page.svelte
index ae997bce..c2163a81 100644
--- a/src/routes/(app)/send/invoice/[id]/+page.svelte
+++ b/src/routes/(app)/send/invoice/[id]/+page.svelte
@@ -13,9 +13,17 @@
export let data;
export let form;
- let { address, hash, rate, payreq, recipient, tip, rates, user } = data;
+ let { address, hash, payreq, recipient, tip, rates, user } = data;
let { currency } = user;
+ $: reload(data);
+ let reload = (data) => {
+ ({ address, hash, payreq, recipient, tip, rates, user } = data);
+ ({ currency } = user);
+ };
+
+ $: rate = data.rate * (rates[user.currency] / rates[data.currency]);
+
let amount = form?.amount || data.amount;
let a,
af,
@@ -42,8 +50,6 @@
});
};
- $: rate = data.rate * (rates[user.currency] / rates[data.currency]);
-
$: update(form);
let update = () => {
if (form?.message.includes("pin")) $pin = undefined;
@@ -80,7 +86,7 @@
</div>
{/if}
-<div class="container px-4 mt-20 max-w-xl mx-auto">
+<div class="container px-4 max-w-xl mx-auto">
{#if amount}
<div class="text-center mb-8">
<h1 class="text-xl md:text-2xl text-secondary mb-2">
@@ -164,7 +170,7 @@
{/if}
</div>
</form>
- <div class="flex my-20">
+ <div class="flex my-10">
<button class="mx-auto" on:click={external}
>{$t("payments.moreOptions")}</button
>
diff --git a/src/routes/(app)/send/lightning/[payreq]/+page.server.js b/src/routes/(app)/send/lightning/[payreq]/+page.server.js
index 49c952bf..a2b60356 100644
--- a/src/routes/(app)/send/lightning/[payreq]/+page.server.js
+++ b/src/routes/(app)/send/lightning/[payreq]/+page.server.js
@@ -1,9 +1,9 @@
import { fail, redirect } from "@sveltejs/kit";
import { fd, auth, post } from "$lib/utils";
-export async function load({ params }) {
- return post("/parse", params);
-}
+export async function load({ cookies, params }) {
+ return post("/parse", params, auth(cookies));
+ }
export const actions = {
setAmount: async ({ cookies, request }) => fd(request),
diff --git a/src/routes/(app)/send/lightning/[payreq]/+page.svelte b/src/routes/(app)/send/lightning/[payreq]/+page.svelte
index d88e0d97..44a45927 100644
--- a/src/routes/(app)/send/lightning/[payreq]/+page.svelte
+++ b/src/routes/(app)/send/lightning/[payreq]/+page.svelte
@@ -5,7 +5,7 @@
import Numpad from "$comp/Numpad.svelte";
import Spinner from "$comp/Spinner.svelte";
import { page } from "$app/stores";
- import { back, fiat, f, s } from "$lib/utils";
+ import { back, fiat, f, s, focus } from "$lib/utils";
import { rate, pin } from "$lib/store";
export let data;
@@ -14,6 +14,7 @@
let { payreq } = $page.params;
let {
alias,
+ ourfee,
rates,
user: { currency },
} = data;
@@ -23,6 +24,7 @@
let reload = (data) => {
({
alias,
+ ourfee,
rates,
user: { currency },
} = data);
@@ -59,20 +61,20 @@
<Icon icon="arrow-left" style="w-10" />
</button>
-{#if form?.message}
- <div class="text-red-600 text-center">
- {form.message}
- </div>
-{/if}
-
<div class="container px-4 max-w-xl mx-auto text-center space-y-5">
{#if amount}
- <h1 class="text-4xl font-semibold mb-10">
- {$t("payments.send")}
- </h1>
+ {#if form?.message}
+ <div class="text-red-600 text-center">
+ {form.message}
+ </div>
+ {/if}
- <div class="text-center">
- <h2 class="text-2xl font-semibold">
+ <div>
+ <h1 class="text-2xl text-secondary">
+ {$t("payments.send")}
+ </h1>
+
+ <h2 class="text-3xl font-semibold">
{f(fiat(amount, $rate), currency)}
</h2>
<h3 class="text-secondary text-xl">⚡️{s(amount)}</h3>
@@ -84,6 +86,21 @@
<p class="text-2xl break-words font-semibold mb-8">{alias}</p>
+ {#if ourfee}
+ <div class="text-center">
+ <h2 class="text-secondary text-lg">{$t("payments.platformFee")}</h2>
+
+ <div class="flex flex-wrap gap-4 justify-center">
+ <div class="my-auto">
+ <h2 class="text-xl">
+ {f(fiat(ourfee, $rate), currency)}
+ </h2>
+ <h3 class="text-secondary">⚡️{s(ourfee)}</h3>
+ </div>
+ </div>
+ </div>
+ {/if}
+
<form
method="POST"
use:enhance
@@ -95,24 +112,31 @@
<input name="amount" value={amount} type="hidden" />
<input name="pin" value={$pin} type="hidden" />
- <div class="relative w-40 mx-auto text-left">
+ <div class="w-40 mx-auto">
<label for="maxfee" class="text-lg text-secondary"
>{$t("payments.maxfee")}</label
>
- <input name="maxfee" bind:value={maxfee} class="text-lg" />
- <div
- class="absolute right-[2px] top-[25px] text-gray-600 rounded-r-2xl p-4 h-[54px] my-auto border-l"
- >
- ⚡️
+ <div class="flex">
+ <input
+ name="maxfee"
+ bind:value={maxfee}
+ class="border-r-0 rounded-r-none text-lg py-2"
+ />
+ <div
+ class="text-gray-600 rounded-r-2xl p-5 my-auto rounded-l-none rounded border bg-gray-100"
+ >
+ ⚡️
+ </div>
</div>
</div>
<div class="flex w-full">
<button
type="submit"
- class="opacity-100 hover:opacity-80'} rounded-2xl border py-3 font-bold mx-auto mt-2 bg-black text-white px-4 w-24"
+ class="opacity-100 hover:opacity-80'} rounded-full border py-5 px-7 font-semibold mx-auto mt-2 bg-black text-white text-2xl"
disabled={loading}
+ use:focus
>
{#if loading}
<Spinner />
@@ -130,6 +154,8 @@
use:enhance
>
<input type="hidden" value={a} name="amount" />
+ <input name="rate" value={$rate} type="hidden" />
+
<Numpad bind:amount={a} {currency} bind:rate={$rate} />
<button
type="submit"
diff --git a/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
index e5fa4452..9e586f84 100644
--- a/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
+++ b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js
@@ -20,7 +20,13 @@ export async function load({ cookies, params, parent }) {
let { hash } = await post(
"/invoice",
{
- invoice: { amount, prompt: false, type: types.lightning },
+ invoice: {
+ amount,
+ currency: currency === subject.currency ? currency : undefined,
+ prompt: false,
+ rate: currency === subject.currency ? rate : undefined,
+ type: types.lightning,
+ },
user: { username },
},
auth(cookies)