aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/send
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-10-06 00:13:16 -0700
committerAdam Soltys <[email protected]>2022-10-06 00:22:40 -0700
commitf8b1415475759e7c64a97dadbcd283a3131a4b9f (patch)
tree699d86a205d204e5abadae3c62362e2ff286b299 /src/routes/send
parent5b24ffae2d402fbbff78f53727ca87f5cfe75618 (diff)
downloadcoinos-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.js47
-rw-r--r--src/routes/send/[...text]/+page.server.js55
-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.svelte2
-rw-r--r--src/routes/send/user/[username]/+page.svelte2
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}