diff options
| author | Adam Soltys <[email protected]> | 2024-10-14 15:37:09 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-14 15:37:09 -0700 |
| commit | 9bf9c7151be64317ec5b8b43fb41064e62dc743a (patch) | |
| tree | 18668a55a7016c0398e20a49a22889d805d879a4 /src | |
| parent | dbb746bf404e7ed302c34b6631a170aff57c64c6 (diff) | |
| download | coinos-ui-9bf9c7151be64317ec5b8b43fb41064e62dc743a.tar.gz coinos-ui-9bf9c7151be64317ec5b8b43fb41064e62dc743a.zip | |
support lnurl comments
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/Lnurlp.svelte | 17 | ||||
| -rw-r--r-- | src/locales/en.json | 1 | ||||
| -rw-r--r-- | src/routes/(app)/ln/[lnurl]/+page.server.ts | 9 |
3 files changed, 20 insertions, 7 deletions
diff --git a/src/components/Lnurlp.svelte b/src/components/Lnurlp.svelte index 6785061a..ef6c4e51 100644 --- a/src/components/Lnurlp.svelte +++ b/src/components/Lnurlp.svelte @@ -5,9 +5,10 @@ import Spinner from "$comp/Spinner.svelte"; import { pin } from "$lib/store"; - export let data, form, send; + export let data, form, send, comment; let { currency } = data.user; - let { minSendable, maxSendable, callback, metadata, rates } = data; + let { minSendable, maxSendable, commentAllowed, callback, metadata, rates } = + data; $: rate = rates[currency]; @@ -16,7 +17,7 @@ let submit = () => (loading = true); </script> -<div class="container px-4 mt-20 max-w-xl mx-auto"> +<div class="container px-4 mt-20 max-w-xl mx-auto space-y-2"> <div class="text-center mb-8"> {#each JSON.parse(metadata) as m} <div> @@ -45,6 +46,16 @@ <input name="callback" value={callback} type="hidden" /> <input name="pin" value={$pin} type="hidden" /> + {#if commentAllowed} + <textarea + name="text" + placeholder={$t("payments.message")} + class="w-full p-4 border rounded-xl h-32 text-xl" + bind:value={comment} + autocapitalize="none" + /> + {/if} + <div class="flex w-full"> <button bind:this={send} diff --git a/src/locales/en.json b/src/locales/en.json index 67e6a318..3bc196e6 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -330,6 +330,7 @@ "ok": "Ok", "cancel": "Cancel", "failedToRoute": "Failed to route payment, recipient may not be reachable. Try sending a smaller amount or increasing the max fee reserve.", + "message": "Message", "enterWalletPass": "Wallet password", "legacyVersion": "Legacy version", "newVersion": "New version", diff --git a/src/routes/(app)/ln/[lnurl]/+page.server.ts b/src/routes/(app)/ln/[lnurl]/+page.server.ts index c078ae8e..0caadfc0 100644 --- a/src/routes/(app)/ln/[lnurl]/+page.server.ts +++ b/src/routes/(app)/ln/[lnurl]/+page.server.ts @@ -24,7 +24,7 @@ export const actions = { pay: async ({ fetch, request }) => { let error; - let { callback, amount, minSendable, maxSendable } = await fd(request); + let { callback, amount, minSendable, maxSendable, comment } = await fd(request); minSendable = Math.round(minSendable / 1000); maxSendable = Math.round(maxSendable / 1000); @@ -34,9 +34,10 @@ export const actions = { error = `Amount must be at most ${maxSendable} sats`; if (error) return fail(400, { error }); - let { pr } = await fetch(`${callback}?amount=${amount * 1000}`).then((r) => - r.json() - ); + let url = `${callback}?amount=${amount * 1000}`; + + if (comment) url += `&comment=${comment}`; + let { pr } = await fetch(url).then((r) => r.json()); redirect(307, `/send/lightning/${pr}`); }, |
