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/routes/(app)/[username]/receive/+page.svelte | 30 +++++++++++++++++---- src/routes/(app)/invoice/[id]/+page.svelte | 34 ++++++++++++++++++------ 2 files changed, 51 insertions(+), 13 deletions(-) (limited to 'src/routes/(app)') 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