diff options
| author | Adam Soltys <[email protected]> | 2022-10-01 15:28:35 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-01 15:28:38 -0700 |
| commit | cb272477247582355d38bc6c47b1795801689a55 (patch) | |
| tree | 9480acdafbc6c80b47c775010a743c7265cbf410 | |
| parent | 17e470bfc8453f2b83b2a916a936f33f6d03bae1 (diff) | |
| download | coinos-ui-cb272477247582355d38bc6c47b1795801689a55.tar.gz coinos-ui-cb272477247582355d38bc6c47b1795801689a55.zip | |
send lightning endpoint
| -rw-r--r-- | src/lib/parse.js | 18 | ||||
| -rw-r--r-- | src/routes/send/bitcoin/[address]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/send/lightning/+page.svelte | 0 | ||||
| -rw-r--r-- | src/routes/send/lightning/[payreq]/+page.server.js | 14 | ||||
| -rw-r--r-- | src/routes/send/lightning/[payreq]/+page.svelte | 42 |
5 files changed, 65 insertions, 11 deletions
diff --git a/src/lib/parse.js b/src/lib/parse.js index e503a723..95d0a8b6 100644 --- a/src/lib/parse.js +++ b/src/lib/parse.js @@ -5,27 +5,25 @@ import { get } from '$lib/utils'; import { goto } from '$app/navigation'; let debounce; -export default async (text) => { - if (!text) return; +export default async (t) => { + if (!t) return; console.log('parsing'); // lightning - if (text.startsWith('ln')) { - try { - console.log('lightning'); - } catch (e) {} + if (t.startsWith('ln')) { + goto(`/send/lightning/${t}`); } // bitcoin - if (validate(text)) { + if (validate(t)) { console.log('bitcoin'); - goto(`/send/bitcoin/${text}`); + goto(`/send/bitcoin/${t}`); } // ln address - if (text.includes('@') && text.includes('.')) { + if (t.includes('@') && t.includes('.')) { console.log('ln address'); - let [name, domain] = text.split('@'); + let [name, domain] = t.split('@'); try { clearTimeout(debounce); await new Promise((r) => (debounce = setTimeout(r, 1500))); diff --git a/src/routes/send/bitcoin/[address]/+page.svelte b/src/routes/send/bitcoin/[address]/+page.svelte index fd635fd5..2b472124 100644 --- a/src/routes/send/bitcoin/[address]/+page.svelte +++ b/src/routes/send/bitcoin/[address]/+page.svelte @@ -1,5 +1,5 @@ <script> - import { AppHeader, Icon, Numpad } from '$comp'; + import { AppHeader, Icon, Numpad, Spinner } from '$comp'; import { page } from '$app/stores'; import { back } from '$lib/utils'; export let data; diff --git a/src/routes/send/lightning/+page.svelte b/src/routes/send/lightning/+page.svelte deleted file mode 100644 index e69de29b..00000000 --- a/src/routes/send/lightning/+page.svelte +++ /dev/null diff --git a/src/routes/send/lightning/[payreq]/+page.server.js b/src/routes/send/lightning/[payreq]/+page.server.js new file mode 100644 index 00000000..0030d690 --- /dev/null +++ b/src/routes/send/lightning/[payreq]/+page.server.js @@ -0,0 +1,14 @@ +import { redirect } from '@sveltejs/kit'; +import { btc as asset, auth, post } from '$lib/utils'; + +export async function load({ params }) { + return post('/lightning/parse', params); +} + +export const actions = { + default: async ({ request }) => { + let body = Object.fromEntries(await request.formData()); + await post('/lightning/send', body, auth(request)); + throw redirect(307, '/sent'); + } +}; diff --git a/src/routes/send/lightning/[payreq]/+page.svelte b/src/routes/send/lightning/[payreq]/+page.svelte new file mode 100644 index 00000000..79fc1c44 --- /dev/null +++ b/src/routes/send/lightning/[payreq]/+page.svelte @@ -0,0 +1,42 @@ +<script> + import { AppHeader, Icon, Numpad, Spinner } from '$comp'; + import { page } from '$app/stores'; + import { back } from '$lib/utils'; + export let data; + + let { payreq } = $page.params; + + let { currency } = data.user; + let amount, loading; + + console.log(data) +</script> + +<button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" on:click={back}> + <Icon icon="arrow-left" style="w-10" /> +</button> + +<div class="container px-4 mt-20 max-w-xl mx-auto"> + <div class="text-center mb-8"> + <h1 class="text-3xl md:text-4xl font-semibold mb-2">Send to</h1> + <p class="text-lg text-secondary">{payreq}</p> + </div> + <Numpad bind:amount {currency} /> + + <form method="POST"> + <input name="payreq" value={payreq} type="hidden" /> + <input name="amount" value={amount} type="hidden" /> + <div class="flex w-full"> + <button + type="submit" + class="opacity-100 hover:opacity-80'} rounded-2xl border py-3 font-bold mx-auto mt-2 bg-black text-white px-4 w-24" + > + {#if loading} + <Spinner /> + {:else} + Send + {/if} + </button> + </div> + </form> +</div> |
