From 8551df92b96ff69f3cda50184cb714ba30f3803d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 3 Mar 2026 16:08:52 -0800 Subject: get rid of /receive route --- src/components/Account.svelte | 2 +- src/components/InvoiceData.svelte | 38 +++++++++++++++++++++----------------- src/components/InvoiceTypes.svelte | 16 +++++++--------- src/components/SetType.svelte | 3 ++- 4 files changed, 31 insertions(+), 28 deletions(-) (limited to 'src/components') diff --git a/src/components/Account.svelte b/src/components/Account.svelte index 44b53bdf..0be08a05 100644 --- a/src/components/Account.svelte +++ b/src/components/Account.svelte @@ -86,7 +86,7 @@ } }; - let receiveUrl = $derived(id === user.id ? `/${user.username}/receive` : "/invoice"); + let receiveUrl = $derived(id === user.id ? "/invoice?lnurl=true" : "/invoice"); let displayType = $derived( accountType === "ark" diff --git a/src/components/InvoiceData.svelte b/src/components/InvoiceData.svelte index 617f6f42..ece30457 100644 --- a/src/components/InvoiceData.svelte +++ b/src/components/InvoiceData.svelte @@ -24,31 +24,34 @@ let { memo } = $derived(invoice); let qrSrc = $derived(`/qr/${encodeURIComponent(invoice.text)}/raw`); - let visibleSrc = $state(""); - let first = true; + let srcs: string[] = $state([]); $effect(() => { const next = qrSrc; - if (first) { - first = false; - visibleSrc = next; - return; + if (!srcs.length) { + srcs = [next]; + } else if (next !== srcs[srcs.length - 1]) { + srcs = [...srcs, next]; } - const img = new Image(); - img.onload = () => (visibleSrc = next); - img.src = next; }); + + let onLoaded = (src: string) => { + const idx = srcs.indexOf(src); + if (idx > 0) srcs = srcs.slice(idx); + }; {#if showQr} -
- - {txt} - +
+ {#each srcs as src, i (src)} + + {txt} 1 ? () => onLoaded(src) : undefined} + /> + + {/each}
{/if} @@ -92,3 +95,4 @@ {#if memo}
{memo}
{/if} + diff --git a/src/components/InvoiceTypes.svelte b/src/components/InvoiceTypes.svelte index b518364d..489fb367 100644 --- a/src/components/InvoiceTypes.svelte +++ b/src/components/InvoiceTypes.svelte @@ -2,7 +2,6 @@ import PhLightningFill from "virtual:icons/ph/lightning-fill"; import PhXBold from "virtual:icons/ph/x-bold"; import { types } from "$lib/utils"; - import { page } from "$app/stores"; import { amountPrompt } from "$lib/store"; let { newAmount = $bindable(), @@ -14,6 +13,7 @@ setAmount, setType, activeOnly = false, + lnurlMode = false, } = $props(); let { aid, address_type, type } = $derived(invoice); @@ -60,10 +60,9 @@