aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/(app)')
-rw-r--r--src/routes/(app)/send/lightning/[payreq]/[...memo]/+page.svelte17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/routes/(app)/send/lightning/[payreq]/[...memo]/+page.svelte b/src/routes/(app)/send/lightning/[payreq]/[...memo]/+page.svelte
index d3d9f757..7b42a42d 100644
--- a/src/routes/(app)/send/lightning/[payreq]/[...memo]/+page.svelte
+++ b/src/routes/(app)/send/lightning/[payreq]/[...memo]/+page.svelte
@@ -48,6 +48,20 @@
(form.message.includes($t("payments.insufficientFunds")) ||
form.message.includes("Routing fee")),
);
+
+ // A resubmitted invoice (back button, double tap) isn't a routing failure —
+ // the first attempt went through or is still in flight. Say so instead of
+ // telling the user the recipient is unreachable.
+ let duplicate = $derived(
+ form?.message &&
+ (/already (been )?paid/i.test(form.message)
+ ? "payments.alreadyPaid"
+ : form.message.includes("already underway")
+ ? "payments.alreadyUnderway"
+ : form.message.includes("still settling")
+ ? "payments.stillSettling"
+ : null),
+ );
</script>
<div class="container px-4 max-w-xl mx-auto text-center space-y-2">
@@ -58,6 +72,9 @@
{#if form.message.includes($t("payments.insufficientFunds"))}
<div>{$t("payments.lockedBalance")}: {locked}</div>
{/if}
+ {:else if duplicate}
+ <div>{$t(duplicate)}</div>
+ <a href="/payments" class="underline">{$t("payments.header")}</a>
{:else}
{$t("payments.failedToRoute")}
{/if}