From 0a69cf4077363c56e6e5e1b8c8857c2d25e3986a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 15 Jan 2025 15:37:19 -0800 Subject: invoice type selection --- src/components/InvoiceActions.svelte | 84 +++++++--- src/components/InvoiceTypes.svelte | 185 +++++++++++++++-------- src/components/SetType.svelte | 37 +++++ src/routes/(app)/[username]/receive/+page.svelte | 30 +++- src/routes/(app)/invoice/[id]/+page.svelte | 34 ++++- 5 files changed, 274 insertions(+), 96 deletions(-) create mode 100644 src/components/SetType.svelte (limited to 'src') diff --git a/src/components/InvoiceActions.svelte b/src/components/InvoiceActions.svelte index c0f8f572..0f500fe6 100644 --- a/src/components/InvoiceActions.svelte +++ b/src/components/InvoiceActions.svelte @@ -1,4 +1,6 @@
- + + +
+ - {#if user?.id === invoice?.user?.id} - - {:else} - - +
+ +
+ {#if user?.id === invoice?.user?.id} + - - {/if} + {:else} + + + + {/if} - + +
{#if txt.length > 120}
@@ -49,7 +84,8 @@ {:else} - + {/if}
{showQr ? t("payments.showText") : t("payments.showQr")} diff --git a/src/components/InvoiceTypes.svelte b/src/components/InvoiceTypes.svelte index c4d7fa77..0829fc82 100644 --- a/src/components/InvoiceTypes.svelte +++ b/src/components/InvoiceTypes.svelte @@ -1,79 +1,133 @@ {#if invoice.uid === aid} -
- +
+
LNURL
+ - + - + - + - + - -
+ + + {/if} diff --git a/src/components/SetType.svelte b/src/components/SetType.svelte new file mode 100644 index 00000000..7e80d0bc --- /dev/null +++ b/src/components/SetType.svelte @@ -0,0 +1,37 @@ + + +{#if settingType} +
+
+ +
+
+{/if} diff --git a/src/routes/(app)/[username]/receive/+page.svelte b/src/routes/(app)/[username]/receive/+page.svelte index e02d6651..887e9680 100644 --- a/src/routes/(app)/[username]/receive/+page.svelte +++ b/src/routes/(app)/[username]/receive/+page.svelte @@ -22,6 +22,7 @@ import InvoiceTypes from "$comp/InvoiceTypes.svelte"; import SetAmount from "$comp/SetAmount.svelte"; import SetMemo from "$comp/SetMemo.svelte"; + import SetType from "$comp/SetType.svelte"; import { t } from "$lib/translations"; import { goto, invalidate } from "$app/navigation"; import { page } from "$app/stores"; @@ -68,20 +69,24 @@ } }; + let settingType = $state(); + let toggleType = () => (settingType = !settingType); let setType = async (type, address_type) => { $showQr = true; - if (type === types.lightning && !amount) + if (type === types.lightning && !amount && typeof newAmount === "undefined") goto(`/${username}/receive`, { invalidateAll: true, noScroll: true }); else { + if (typeof newAmount !== "undefined") invoice.amount = newAmount; invoice.address_type = address_type; invoice.type = type; await update(); } + settingType = false; }; let setAmount = async (e) => { - e.preventDefault(); - e.stopPropagation(); + e?.preventDefault(); + e?.stopPropagation(); settingAmount = false; @@ -142,6 +147,10 @@ /> - -
+ + diff --git a/src/routes/(app)/invoice/[id]/+page.svelte b/src/routes/(app)/invoice/[id]/+page.svelte index fdb180ef..4c5c3b50 100644 --- a/src/routes/(app)/invoice/[id]/+page.svelte +++ b/src/routes/(app)/invoice/[id]/+page.svelte @@ -20,9 +20,9 @@ import Avatar from "$comp/Avatar.svelte"; import InvoiceData from "$comp/InvoiceData.svelte"; import InvoiceActions from "$comp/InvoiceActions.svelte"; - import InvoiceTypes from "$comp/InvoiceTypes.svelte"; import SetAmount from "$comp/SetAmount.svelte"; import SetMemo from "$comp/SetMemo.svelte"; + import SetType from "$comp/SetType.svelte"; import { t } from "$lib/translations"; import { goto, invalidate } from "$app/navigation"; @@ -85,23 +85,28 @@ } }; - let setType = async (type) => { + let settingType = $state(); + let toggleType = () => (settingType = !settingType); + let setType = async (type, address_type) => { $showQr = true; - if (type === types.lightning && !amount) + if (type === types.lightning && !amount && typeof newAmount === "undefined") goto(`/${username}/receive`, { invalidateAll: true, noScroll: true }); else { + if (typeof newAmount !== "undefined") invoice.amount = newAmount; + invoice.address_type = address_type; invoice.type = type; await update(); } + settingType = false; }; let newAmount = $state(0); let settingAmount = $state(); - let toggleAmount = $state(() => (settingAmount = !settingAmount)); + let toggleAmount = () => (settingAmount = !settingAmount); let setAmount = async (e) => { - e.preventDefault(); - e.stopPropagation(); + e?.preventDefault(); + e?.stopPropagation(); settingAmount = false; @@ -153,6 +158,9 @@ /> - -
+ + -- cgit v1.2.3