diff options
| author | Adam Soltys <[email protected]> | 2024-11-20 16:59:33 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-11-20 16:59:33 -0800 |
| commit | 38a85c8d8e854a7ac935c232b7e3e046e08bc002 (patch) | |
| tree | c7df509d4e1daeb306743200f9755b690dec9f99 /src | |
| parent | e9bd1f4e0593f5e7381892349d8ca9fd5bfec320 (diff) | |
| download | coinos-ui-38a85c8d8e854a7ac935c232b7e3e046e08bc002.tar.gz coinos-ui-38a85c8d8e854a7ac935c232b7e3e046e08bc002.zip | |
fix bip21 parsing
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/parse.ts | 15 | ||||
| -rw-r--r-- | src/routes/(app)/payments/[...page]/+page.svelte | 26 |
2 files changed, 20 insertions, 21 deletions
diff --git a/src/lib/parse.ts b/src/lib/parse.ts index 762997a4..e4bd3497 100644 --- a/src/lib/parse.ts +++ b/src/lib/parse.ts @@ -1,5 +1,5 @@ import { PUBLIC_DOMAIN } from "$env/static/public"; -import { get, isLiquid, post } from "$lib/utils"; +import { get, sats, isLiquid, post } from "$lib/utils"; import { redirect } from "@sveltejs/kit"; import bip21 from "bip21"; import { validate } from "bitcoin-address-validation"; @@ -21,11 +21,6 @@ export default async (s, host) => { let user; t = t.trim(); - if (t.toLowerCase().startsWith("bitcoin:")) - ({ - address: t, - options: { amount }, - } = bip21.decode(t)); if (t.startsWith("lightning:")) t = t.replace("lightning:", ""); if (t.endsWith(`@${PUBLIC_DOMAIN}`)) t = t.split("@")[0]; @@ -58,9 +53,15 @@ export default async (s, host) => { } // bitcoin + if (t.toLowerCase().startsWith("bitcoin:")) + ({ + address: t, + options: { amount }, + } = bip21.decode(t)); + if (validate(t) || isLiquid(t)) { let r = `/send/bitcoin/${t}`; - if (amount) r += `/${amount}`; + if (amount) r += `/${Math.round(amount * sats)}`; redirect(307, r); } diff --git a/src/routes/(app)/payments/[...page]/+page.svelte b/src/routes/(app)/payments/[...page]/+page.svelte index e651ba90..28099ffc 100644 --- a/src/routes/(app)/payments/[...page]/+page.svelte +++ b/src/routes/(app)/payments/[...page]/+page.svelte @@ -142,7 +142,7 @@ let showPage = $derived((i) => { const currentPage = parseInt(p); - const maxVisiblePages = 12; + const maxVisiblePages = 10; if (i === 0 || i === pages.length - 1) return true; @@ -168,11 +168,11 @@ </script> <div class="space-y-5"> - <h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold"> + <h1 class="text-center text-3xl md:text-4xl font-semibold"> {$t("payments.header")} </h1> - <div class="container w-full mx-auto text-lg px-4 max-w-xl space-y-2"> + <div class="container w-full mx-auto text-lg px-2 max-w-xl space-y-2"> <div class="mx-auto flex justify-center w-full gap-1"> {#each presets as { start, end, title }, i} <a href={`/payments/${getUnixTime(start) + "/"}1`}> @@ -204,15 +204,14 @@ <div class="text-base"> {#each payments as p, i} - <a href={`/payment/${p.id}`} class="contents"> <div - class="grid grid-cols-12 border-b border-base-200 h-24 hover:bg-base-200 px-4" + class="grid grid-cols-12 border-b border-base-200 h-16 hover:bg-base-200" class:border-b-0={i === payments.length - 1} + onclick={() => goto(`/payment/${p.id}`)} > <div class="whitespace-nowrap my-auto col-span-3"> <div class="font-bold flex items-center" - class:text-red-800={p.amount < 0} > <div class="flex items-center"> <iconify-icon @@ -220,23 +219,23 @@ width="24" class="text-yellow-300" ></iconify-icon> - <div>{si(Math.abs(p.amount), 0, 1)}</div> + <div>{s(Math.abs(p.amount))}</div> </div> + </div> + + <div class="text-secondary flex items-center text-base"> + {f(Math.abs(p.amount) * (p.rate / sats), p.currency)} {#if p.tip} <span class="text-sm text-secondary"> - +{Math.round((p.tip / Math.abs(p.amount)) * 100)}% + +{Math.round((p.tip / Math.abs(p.amount)) * 100)}% </span> {/if} </div> - - <div class="text-secondary flex items-center"> - {f(Math.abs(p.amount) * (p.rate / sats), p.currency)} - </div> </div> <div - class="flex my-auto col-span-5 truncate text-ellipsis overflow-hidden mx-auto" + class="flex my-auto col-span-6 truncate text-ellipsis overflow-hidden mx-auto" > {#if p.type === types.pot} <a href={`/pot/${p.memo}`}> @@ -302,7 +301,6 @@ </div> </div> </div> - </a> {:else} <p class="text-secondary text-lg text-center">{$t("payments.empty")}</p> {/each} |
