diff options
| author | Adam Soltys <[email protected]> | 2022-10-06 00:13:16 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-06 00:22:40 -0700 |
| commit | f8b1415475759e7c64a97dadbcd283a3131a4b9f (patch) | |
| tree | 699d86a205d204e5abadae3c62362e2ff286b299 /src/routes/send | |
| parent | 5b24ffae2d402fbbff78f53727ca87f5cfe75618 (diff) | |
| download | coinos-ui-f8b1415475759e7c64a97dadbcd283a3131a4b9f.tar.gz coinos-ui-f8b1415475759e7c64a97dadbcd283a3131a4b9f.zip | |
send route can take a parameter
Diffstat (limited to 'src/routes/send')
| -rw-r--r-- | src/routes/send/+page.server.js | 47 | ||||
| -rw-r--r-- | src/routes/send/[...text]/+page.server.js | 55 | ||||
| -rw-r--r-- | src/routes/send/[...text]/+page.svelte (renamed from src/routes/send/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/send/lightning/[payreq]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/send/user/[username]/+page.svelte | 2 |
5 files changed, 57 insertions, 49 deletions
diff --git a/src/routes/send/+page.server.js b/src/routes/send/+page.server.js deleted file mode 100644 index c8edb1cc..00000000 --- a/src/routes/send/+page.server.js +++ /dev/null @@ -1,47 +0,0 @@ -import validate from 'bitcoin-address-validation'; -import bip21 from 'bip21'; -import { get } from '$lib/utils'; -import { invalid, redirect } from '@sveltejs/kit'; - -export const actions = { - default: async ({ request }) => { - const values = await request.formData(); - const t = values.get('text'); - if (!t) return; - - // lightning - if (t.startsWith('ln')) { - throw redirect(303, `/send/lightning/${t}`); - } - - // bitcoin - if (validate(t)) { - let user; - try { - ({ user } = await get(`/invoice/${t}`)); - } catch (e) { - throw redirect(303, `/send/bitcoin/${t}`); - } - - if (user) throw redirect(303, `/send/user/${user.username}`); - } - - // ln address - if (t.includes('@') && t.includes('.')) { - let [name, domain] = t.split('@'); - try { - let lnurl = await get(`/encode?domain=${domain}&name=${name}`); - } catch (e) {} - } - - // user - let user; - try { - user = await get(`/users/${t}`); - } catch (e) {} - - if (user) throw redirect(303, `/send/user/${t}`); - - return invalid(403, { error: 'Failed to recognize input' }); - } -}; diff --git a/src/routes/send/[...text]/+page.server.js b/src/routes/send/[...text]/+page.server.js new file mode 100644 index 00000000..ec764882 --- /dev/null +++ b/src/routes/send/[...text]/+page.server.js @@ -0,0 +1,55 @@ +import validate from 'bitcoin-address-validation'; +import bip21 from 'bip21'; +import { get } from '$lib/utils'; +import { invalid, redirect } from '@sveltejs/kit'; + +let parse = async (t) => { + if (!t) return; + + // lightning + if (t.startsWith('ln')) { + throw redirect(303, `/send/lightning/${t}`); + } + + // bitcoin + if (validate(t)) { + let user; + try { + ({ user } = await get(`/invoice/${t}`)); + } catch (e) { + throw redirect(303, `/send/bitcoin/${t}`); + } + + if (user) throw redirect(303, `/send/user/${user.username}`); + } + + // ln address + if (t.includes('@') && t.includes('.')) { + let [name, domain] = t.split('@'); + try { + let lnurl = await get(`/encode?domain=${domain}&name=${name}`); + } catch (e) {} + } + + // user + let user; + try { + user = await get(`/users/${t}`); + } catch (e) {} + + if (user) throw redirect(303, `/send/user/${t}`); +}; + +export async function load({ params }) { + let { text } = params; + await parse(text); +} + +export const actions = { + default: async ({ request }) => { + const form = await request.formData(); + await parse(form.get('text')); + + return invalid(403, { error: 'Failed to recognize input' }); + } +}; diff --git a/src/routes/send/+page.svelte b/src/routes/send/[...text]/+page.svelte index 5d6d123e..5d6d123e 100644 --- a/src/routes/send/+page.svelte +++ b/src/routes/send/[...text]/+page.svelte diff --git a/src/routes/send/lightning/[payreq]/+page.svelte b/src/routes/send/lightning/[payreq]/+page.svelte index 1b248af6..973550f6 100644 --- a/src/routes/send/lightning/[payreq]/+page.svelte +++ b/src/routes/send/lightning/[payreq]/+page.svelte @@ -23,7 +23,7 @@ <div class="container px-4 mt-20 max-w-xl mx-auto"> {#if amount} <div class="text-center mb-8"> - <h1 class="text-xl md:text-2xl text-secondary mb-2">Sending</h1> + <h1 class="text-xl md:text-2xl text-secondary mb-2">Send</h1> <p class="text-6xl break-words mb-4"> {s(amount)} <span class="text-xl md:text-2xl text-secondary">sats</span> </p> diff --git a/src/routes/send/user/[username]/+page.svelte b/src/routes/send/user/[username]/+page.svelte index 1193696b..05908011 100644 --- a/src/routes/send/user/[username]/+page.svelte +++ b/src/routes/send/user/[username]/+page.svelte @@ -38,7 +38,7 @@ <div class="container px-4 mt-20 max-w-xl mx-auto"> {#if amount} <div class="text-center mb-8"> - <h1 class="text-xl md:text-2xl text-secondary mb-2">Sending</h1> + <h1 class="text-xl md:text-2xl text-secondary mb-2">Send</h1> <p class="text-6xl break-words mb-4"> {fiat ? f(amountFiat, currency) : s(a)} {#if !fiat} |
