From 059613490db9be904791686c49851ec1cc095774 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 26 Jul 2022 21:06:01 -0700 Subject: register endpoint --- src/lib/socket.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/lib/socket.js b/src/lib/socket.js index efc2651b..9d0c472e 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -1,8 +1,17 @@ -import { get } from "svelte/store"; -import { rate, user, token, ws } from '$lib/store'; +import { get } from 'svelte/store'; +import { rate, user, token } from '$lib/store'; let interval, socket; +export const auth = () => { + let t = get(token); + if (t) send('login', t); +}; + +export const send = (type, data) => { + socket?.readyState === 1 && socket.send(JSON.stringify({ type, data })); +}; + export const messages = (data) => ({ rate() { rate.set(data); @@ -12,9 +21,7 @@ export const messages = (data) => ({ console.log(data); }, - connected() { - socket.send(JSON.stringify({ type: 'login', data: { token: get(token) } })); - }, + connected: auth, login() { user.set(data); @@ -29,18 +36,14 @@ let currentReconnectDelay = initialReconnectDelay; export function connect() { clearInterval(interval); - if (socket) socket.close(); + if (socket) return auth(); + socket = new WebSocket('ws://localhost:3119/ws'); socket.addEventListener('open', onWebsocketOpen); socket.addEventListener('close', onWebsocketClose); socket.addEventListener('message', onWebsocketMessage); - interval = setInterval( - () => socket.readyState === 1 && socket.send(JSON.stringify({ type: 'heartbeat' })), - 5000 - ); - - ws.set(socket); + interval = setInterval(() => send('heartbeat'), 5000); } function onWebsocketMessage(msg) { @@ -53,7 +56,7 @@ function onWebsocketOpen() { } function onWebsocketClose() { - ws.set(null); + socket = null; setTimeout(() => { reconnectToWebsocket(); }, currentReconnectDelay + Math.floor(Math.random() * 3000)); -- cgit v1.2.3 From cd9e850f9e15e890727026942d646d59f526fe4e Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 26 Jul 2022 23:37:18 -0700 Subject: fix invoice endpoint --- src/lib/socket.js | 1 + src/lib/utils.js | 2 +- src/routes/invoice.js | 15 +++------------ 3 files changed, 5 insertions(+), 13 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/lib/socket.js b/src/lib/socket.js index 9d0c472e..90238c23 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -24,6 +24,7 @@ export const messages = (data) => ({ connected: auth, login() { + console.log("OY", data) user.set(data); } }); diff --git a/src/lib/utils.js b/src/lib/utils.js index 5b1bba7f..c17b0a98 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -11,4 +11,4 @@ export const post = (url, body) => method: 'POST', body: JSON.stringify(body), headers: { accept: 'application/json', 'content-type': 'application/json' } - }).then((r) => r.json); + }).then((r) => r.json()); diff --git a/src/routes/invoice.js b/src/routes/invoice.js index 147da2b7..4b3327f6 100644 --- a/src/routes/invoice.js +++ b/src/routes/invoice.js @@ -1,21 +1,12 @@ -import got from 'got'; +import { post } from '$lib/utils'; import { invoiceAmount } from '$lib/store'; const username = 'bob', network = 'lightning'; export async function GET({ params }) { - let text = await got - .post('http://localhost:3119/lightning/invoice', { - json: { amount: invoiceAmount } - }) - .text(); - - await got - .post('http://localhost:3119/invoice', { - json: { invoice: { text, network }, user: { username } } - }) - .json(); + let { text } = await post('/lightning/invoice', { amount: invoiceAmount }); + await post('/invoice', { invoice: { text, network }, user: { username } }); return { body: { text } }; } -- cgit v1.2.3 From bcb252eb0b52f64449dad295595fdaa5e80cb5dc Mon Sep 17 00:00:00 2001 From: secondl1ght <85003930+secondl1ght@users.noreply.github.com> Date: Thu, 28 Jul 2022 22:17:58 -0600 Subject: final adjustments for numpad --- src/components/RegisterOrLogin.svelte | 4 +++- src/lib/socket.js | 2 +- src/routes/receive.svelte | 10 ++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte index db577911..6cae8b5a 100644 --- a/src/components/RegisterOrLogin.svelte +++ b/src/components/RegisterOrLogin.svelte @@ -77,7 +77,9 @@

{:else} {/if} diff --git a/src/lib/socket.js b/src/lib/socket.js index 90238c23..087addf9 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -24,7 +24,7 @@ export const messages = (data) => ({ connected: auth, login() { - console.log("OY", data) + console.log('OY', data); user.set(data); } }); diff --git a/src/routes/receive.svelte b/src/routes/receive.svelte index a67b0787..338bc06c 100644 --- a/src/routes/receive.svelte +++ b/src/routes/receive.svelte @@ -32,6 +32,8 @@ if (useFiat) { if (amountFiat === 0 && value !== '.' && value !== '<' && value !== '0') { amountFiat = value; + } else if ((amountFiat === 0 || amountFiat === '0') && value === '0') { + return; } else if (amountFiat === 0 && value === '.') { amountFiat = '0.'; } else if (amountFiat !== 0 && amountFiat.includes('.') && value === '.') { @@ -41,6 +43,7 @@ amountFiat = amountFiat.slice(0, amountFiat.length - 1); if (amountFiat.length === 0) { amountFiat = 0; + amountSats = 0; } } } else if (value !== '.' && value !== '<' && parseInt(amountFiat + value) > $rate) { @@ -92,7 +95,10 @@ if (useFiat) { amountSats = (amountFiat / ($rate / 100000000)).toFixed(0).toString(); } else { - amountFiat = (amountSats * ($rate / 100000000)).toFixed(2).toString(); + amountFiat = + (amountSats * ($rate / 100000000)).toFixed(2) > 0.0 + ? (amountSats * ($rate / 100000000)).toFixed(2).toString() + : 0; } useFiat = !useFiat; }}>
{/if} -- cgit v1.2.3 From 49e7185efd45add123e0dbfcab077772b5ff22f6 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 28 Jul 2022 21:22:25 -0700 Subject: save token in cookie --- package.json | 1 + pnpm-lock.yaml | 7 +++++++ src/components/RegisterOrLogin.svelte | 4 +++- src/hooks/index.js | 16 ++++++++++++++++ src/lib/socket.js | 1 - src/lib/store.js | 18 ++++++++++++++++-- src/routes/__layout.svelte | 4 ++++ src/routes/login.js | 21 ++++++++++++++++++++- 8 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 src/hooks/index.js (limited to 'src/lib/socket.js') diff --git a/package.json b/package.json index 6d3ad58a..23bb6cb6 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@sveltejs/adapter-auto": "next", "@sveltejs/kit": "next", "autoprefixer": "^10.4.7", + "cookie": "^0.5.0", "postcss": "^8.4.14", "prettier": "^2.7.1", "prettier-plugin-svelte": "^2.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72a53df0..9c34207f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,7 @@ specifiers: '@sveltejs/adapter-auto': next '@sveltejs/kit': next autoprefixer: ^10.4.7 + cookie: ^0.5.0 postcss: ^8.4.14 prettier: ^2.7.1 prettier-plugin-svelte: ^2.7.0 @@ -16,6 +17,7 @@ devDependencies: '@sveltejs/adapter-auto': 1.0.0-next.64 '@sveltejs/kit': 1.0.0-next.396_svelte@3.49.0+vite@3.0.3 autoprefixer: 10.4.7_postcss@8.4.14 + cookie: 0.5.0 postcss: 8.4.14 prettier: 2.7.1 prettier-plugin-svelte: 2.7.0_o3ioganyptcsrh6x4hnxvjkpqi @@ -371,6 +373,11 @@ packages: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: true + /cookie/0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + dev: true + /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte index 6cae8b5a..2334741d 100644 --- a/src/components/RegisterOrLogin.svelte +++ b/src/components/RegisterOrLogin.svelte @@ -7,7 +7,7 @@ export let page; - let username, password; + let username = "bob", password = "pw"; let revealPassword = false; @@ -20,6 +20,7 @@ let r = await post(url, { username, password }); if (!r.token) r = await post('/login', { username, password }); $token = r.token; + console.log("new token", r.token) auth(); goto('/receive'); }; @@ -42,6 +43,7 @@ required class="bg-primary p-4 rounded-2xl w-full" bind:value={username} + autofocus /> diff --git a/src/hooks/index.js b/src/hooks/index.js new file mode 100644 index 00000000..21e56052 --- /dev/null +++ b/src/hooks/index.js @@ -0,0 +1,16 @@ +import cookie from "cookie"; +export async function handle({ event, resolve }) { + let { request: { headers }, + } = event; + + const cookies = cookie.parse(headers.get("cookie") || ""); + let { token } = cookies; + event.locals = { token }; + + return resolve(event); +} + + +export const getSession = ({ locals: { token } }) => { + return { token }; +}; diff --git a/src/lib/socket.js b/src/lib/socket.js index 087addf9..9d0c472e 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -24,7 +24,6 @@ export const messages = (data) => ({ connected: auth, login() { - console.log('OY', data); user.set(data); } }); diff --git a/src/lib/store.js b/src/lib/store.js index 7b510748..62232f9d 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -1,6 +1,20 @@ -import { writable } from 'svelte/store'; +import { get, writable } from 'svelte/store'; +import { browser } from '$app/env'; + +const persisted = (k, i) => { + let s = writable( + browser && sessionStorage.getItem(k) && sessionStorage.getItem(k) !== 'undefined' + ? JSON.parse(sessionStorage.getItem(k)) + : i + ); + + s.subscribe((v) => browser && sessionStorage.setItem(k, JSON.stringify(v)) + ); + + return s; +}; export const rate = writable(); export const user = writable(); export const invoiceAmount = writable(); -export const token = writable(); +export const token = persisted('token'); diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index f5576edd..1af9679a 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -2,7 +2,11 @@ import '../app.css'; import { onMount } from 'svelte'; import { connect } from '$lib/socket'; + import { token } from "$lib/store"; + import { session } from "$app/stores"; + import { browser } from "$app/env"; + browser && ($token ||= $session.token); onMount(connect); diff --git a/src/routes/login.js b/src/routes/login.js index 771de9e1..db1fbb6c 100644 --- a/src/routes/login.js +++ b/src/routes/login.js @@ -1,5 +1,24 @@ import { post } from '$lib/utils'; +import cookie from 'cookie'; + +let maxAge = 30 * 24 * 60 * 60; export async function POST({ request }) { - return { body: await post('/login', await request.json()) }; + let body = await post('/login', await request.json()); + + let expires = new Date(); + expires.setSeconds(expires.getSeconds() + maxAge); + + return { + body, + headers: { + 'set-cookie': cookie.serialize('token', body.token, { + httpOnly: true, + maxAge, + sameSite: 'lax', + path: '/', + expires + }) + } + }; } -- cgit v1.2.3 From 8acc59a86b6ec049dfe07f92fd19eeda726136f3 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 30 Jul 2022 09:47:08 -0700 Subject: logout function --- src/components/AppHeader.svelte | 4 +++- src/components/RegisterOrLogin.svelte | 4 ++-- src/lib/socket.js | 4 ++++ src/routes/[...path].svelte | 16 ---------------- src/routes/[username].js | 3 +++ src/routes/[username].svelte | 27 +++++++++++++++++++++++++++ src/routes/__layout.svelte | 23 +++++++++++++++++++---- src/routes/logout/done.svelte | 13 +++++++++++++ src/routes/logout/index.js | 26 ++++++++++++++++++++++++++ src/routes/logout/index.svelte | 10 ++++++++++ src/routes/receive.svelte | 4 ---- static/icons/logout.svg | 3 +++ 12 files changed, 110 insertions(+), 27 deletions(-) delete mode 100644 src/routes/[...path].svelte create mode 100644 src/routes/[username].js create mode 100644 src/routes/[username].svelte create mode 100644 src/routes/logout/done.svelte create mode 100644 src/routes/logout/index.js create mode 100644 src/routes/logout/index.svelte create mode 100644 static/icons/logout.svg (limited to 'src/lib/socket.js') diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index 6376e27f..b096f01e 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -14,9 +14,11 @@ - + diff --git a/src/components/RegisterOrLogin.svelte b/src/components/RegisterOrLogin.svelte index b42b8d7f..f5764a85 100644 --- a/src/components/RegisterOrLogin.svelte +++ b/src/components/RegisterOrLogin.svelte @@ -1,7 +1,7 @@ diff --git a/src/lib/socket.js b/src/lib/socket.js index 9d0c472e..14555bd3 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -46,6 +46,10 @@ export function connect() { interval = setInterval(() => send('heartbeat'), 5000); } +export function close() { + if (socket) socket.close(); +} + function onWebsocketMessage(msg) { let { type, data } = JSON.parse(msg.data); messages(data)[type] && messages(data)[type](); diff --git a/src/routes/[...path].svelte b/src/routes/[...path].svelte deleted file mode 100644 index 503316bb..00000000 --- a/src/routes/[...path].svelte +++ /dev/null @@ -1,16 +0,0 @@ - - -
-
- - - - - - -

404

-

Page not found.

-
-
diff --git a/src/routes/[username].js b/src/routes/[username].js new file mode 100644 index 00000000..39a216c2 --- /dev/null +++ b/src/routes/[username].js @@ -0,0 +1,3 @@ +export async function GET({ params }) { + return { body: params } +} diff --git a/src/routes/[username].svelte b/src/routes/[username].svelte new file mode 100644 index 00000000..fe1f7754 --- /dev/null +++ b/src/routes/[username].svelte @@ -0,0 +1,27 @@ + + +{#if $user?.username === username} + +
+
+
+ Signed in as {username} +
+ + +
+
+{/if} diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index 6562db18..c01dc848 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -2,12 +2,27 @@ import '../app.css'; import { onMount } from 'svelte'; import { connect } from '$lib/socket'; - import { token } from '$lib/store'; - import { session } from '$app/stores'; + import { user, token } from '$lib/store'; + import { page, session } from '$app/stores'; import { browser } from '$app/env'; + import { goto } from '$app/navigation'; browser && ($token ||= $session.token); - onMount(connect); + let protectedRoutes = [/receive/]; + let ready = false; + + onMount(() => { + if (protectedRoutes.find((p) => $page.url.pathname.match(p))) { + if (!$token) goto('/login'); + user.subscribe((u) => (ready = true)); + } else { + ready = true; + } + + connect(); + }); - +{#if ready} + +{/if} diff --git a/src/routes/logout/done.svelte b/src/routes/logout/done.svelte new file mode 100644 index 00000000..894c7b99 --- /dev/null +++ b/src/routes/logout/done.svelte @@ -0,0 +1,13 @@ + diff --git a/src/routes/logout/index.js b/src/routes/logout/index.js new file mode 100644 index 00000000..80e65f8b --- /dev/null +++ b/src/routes/logout/index.js @@ -0,0 +1,26 @@ +import cookie from "cookie"; + +const opts = { + httpOnly: true, + sameSite: "lax", + path: "/", +}; + +export async function GET({ request: { headers } }) { + return { + status: 302, + headers: { + location: "/logout/done", + "set-cookie": [ + cookie.serialize("token", "", { + ...opts, + expires: new Date(0), + }), + cookie.serialize("refresh_token", "", { + ...opts, + expires: new Date(0), + }), + ], + }, + }; +} diff --git a/src/routes/logout/index.svelte b/src/routes/logout/index.svelte new file mode 100644 index 00000000..2c6a7085 --- /dev/null +++ b/src/routes/logout/index.svelte @@ -0,0 +1,10 @@ + diff --git a/src/routes/receive.svelte b/src/routes/receive.svelte index 760733a3..0329dea4 100644 --- a/src/routes/receive.svelte +++ b/src/routes/receive.svelte @@ -4,10 +4,6 @@ import { goto } from '$app/navigation'; import { invoiceAmount, invoiceAmountFiat, rate, user } from '$lib/store'; - if (!$user && typeof window !== 'undefined') { - window.location = '/login'; - } - let useFiat = true; let amountFiat = 0; let amountSats = 0; diff --git a/static/icons/logout.svg b/static/icons/logout.svg new file mode 100644 index 00000000..495d6574 --- /dev/null +++ b/static/icons/logout.svg @@ -0,0 +1,3 @@ + + + -- cgit v1.2.3 From 19ae0d9eb2f1a1c08b04f5c56e8ebd266ef32da8 Mon Sep 17 00:00:00 2001 From: secondl1ght <85003930+secondl1ght@users.noreply.github.com> Date: Sat, 30 Jul 2022 13:02:42 -0600 Subject: format and remove console logs --- src/components/AppHeader.svelte | 20 +++++++++--------- src/components/RegisterOrLogin.svelte | 2 +- src/lib/socket.js | 4 ++-- src/lib/utils.js | 2 +- src/routes/[username]/index.js | 2 +- src/routes/[username]/index.svelte | 2 -- src/routes/[username]/receive.svelte | 3 +-- src/routes/__layout.svelte | 2 +- src/routes/invoice/[id].js | 1 - src/routes/invoice/index.js | 9 +++++--- src/routes/logout/done.svelte | 20 +++++++++--------- src/routes/logout/index.js | 40 +++++++++++++++++------------------ 12 files changed, 53 insertions(+), 54 deletions(-) (limited to 'src/lib/socket.js') diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index 99eea6d5..1c6f639c 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -8,19 +8,19 @@
diff --git a/src/lib/socket.js b/src/lib/socket.js index 36d41ea8..c7c541e1 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -18,7 +18,7 @@ export const messages = (data) => ({ }, payment() { - console.log(data); + console.log(data, 'payment'); }, connected: auth, diff --git a/src/routes/[username]/customers.svelte b/src/routes/[username]/customers.svelte new file mode 100644 index 00000000..1935b156 --- /dev/null +++ b/src/routes/[username]/customers.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/[username]/dashboard.svelte b/src/routes/[username]/dashboard.svelte new file mode 100644 index 00000000..1935b156 --- /dev/null +++ b/src/routes/[username]/dashboard.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/[username]/settings.svelte b/src/routes/[username]/settings.svelte new file mode 100644 index 00000000..1935b156 --- /dev/null +++ b/src/routes/[username]/settings.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/[username]/support.svelte b/src/routes/[username]/support.svelte new file mode 100644 index 00000000..1935b156 --- /dev/null +++ b/src/routes/[username]/support.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/[username]/transactions.svelte b/src/routes/[username]/transactions.svelte new file mode 100644 index 00000000..1935b156 --- /dev/null +++ b/src/routes/[username]/transactions.svelte @@ -0,0 +1,5 @@ + + + diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index d26ccfed..736f38e8 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -18,7 +18,7 @@ if (protectedRoutes.find((p) => $page.url.pathname.match(p))) { if (!$token) { goto('/login'); - toast.push('Please login to continue.'); + toast.push('Please sign in to continue.'); } user.subscribe((u) => (ready = true)); } else { diff --git a/static/icons/customers.svg b/static/icons/customers.svg new file mode 100644 index 00000000..0b6081ba --- /dev/null +++ b/static/icons/customers.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/icons/dash.svg b/static/icons/dash.svg new file mode 100644 index 00000000..acb39ab9 --- /dev/null +++ b/static/icons/dash.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/icons/logout.svg b/static/icons/logout.svg index 495d6574..a614cfc0 100644 --- a/static/icons/logout.svg +++ b/static/icons/logout.svg @@ -1,3 +1,3 @@ - - + + diff --git a/static/icons/settings.svg b/static/icons/settings.svg new file mode 100644 index 00000000..2fac5bea --- /dev/null +++ b/static/icons/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/icons/support.svg b/static/icons/support.svg new file mode 100644 index 00000000..47b935b5 --- /dev/null +++ b/static/icons/support.svg @@ -0,0 +1,3 @@ + + + -- cgit v1.2.3 From b8a74370541d396246b3a13fe72e6f528ef1a2ea Mon Sep 17 00:00:00 2001 From: secondl1ght <85003930+secondl1ght@users.noreply.github.com> Date: Mon, 1 Aug 2022 21:53:11 -0600 Subject: add payment success screen, currency store, ln address, bug fixes + more --- src/lib/socket.js | 5 ++-- src/lib/store.js | 2 ++ src/routes/[username]/index.svelte | 7 ++--- src/routes/[username]/support.svelte | 5 ---- src/routes/__layout.svelte | 2 +- src/routes/invoice/[id].svelte | 54 +++++++++++++++++++++++++++++------ src/routes/support.svelte | 5 ++++ static/images/success.png | Bin 0 -> 191994 bytes 8 files changed, 59 insertions(+), 21 deletions(-) delete mode 100644 src/routes/[username]/support.svelte create mode 100644 src/routes/support.svelte create mode 100644 static/images/success.png (limited to 'src/lib/socket.js') diff --git a/src/lib/socket.js b/src/lib/socket.js index c7c541e1..4898f481 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -1,5 +1,5 @@ import { get } from 'svelte/store'; -import { rate, user, token } from '$lib/store'; +import { rate, user, token, invoicePaid, preferredCurrency } from '$lib/store'; let interval, socket; @@ -18,13 +18,14 @@ export const messages = (data) => ({ }, payment() { - console.log(data, 'payment'); + invoicePaid.set(true); }, connected: auth, login() { user.set(data); + preferredCurrency.set(data.currency); } }); diff --git a/src/lib/store.js b/src/lib/store.js index 6f4a9515..f910dfa6 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -18,3 +18,5 @@ export const user = writable(); export const invoiceAmount = writable(); export const invoiceAmountFiat = writable(); export const token = persisted('token'); +export const invoicePaid = writable(); +export const preferredCurrency = writable(); diff --git a/src/routes/[username]/index.svelte b/src/routes/[username]/index.svelte index a53b94cc..6e3978ad 100644 --- a/src/routes/[username]/index.svelte +++ b/src/routes/[username]/index.svelte @@ -7,8 +7,7 @@ import { copy } from '$lib/utils'; export let username; - //this needs to be pulled from user - let lightning = 'lnbc1p3dzl8tpp5jgq2dxefjdhvmvs3uvtjc'; + let lightningAddress = `${username}@coinos.io`; onMount(async () => { if (browser) { @@ -39,7 +38,7 @@ setTimeout(() => (qrSkeleton = false), 100); const handleCopy = () => { - copy(lightning); + copy(lightningAddress); toast.push('Copied!', { theme: { '--toastBarBackground': '#2F855A' @@ -84,7 +83,7 @@
- {lightning} + {lightningAddress} diff --git a/src/routes/[username]/support.svelte b/src/routes/[username]/support.svelte deleted file mode 100644 index 1935b156..00000000 --- a/src/routes/[username]/support.svelte +++ /dev/null @@ -1,5 +0,0 @@ - - - diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index b2cb8aae..406c29e2 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -11,7 +11,7 @@ import { LoadingSplash } from '$comp'; browser && ($token ||= $session.token); - let protectedRoutes = [/receive/]; + let protectedRoutes = [/receive/, /customers/, /dashboard/, /settings/, /transactions/]; let ready = false; onMount(() => { diff --git a/src/routes/invoice/[id].svelte b/src/routes/invoice/[id].svelte index 1f1a7aa3..dfb6be8d 100644 --- a/src/routes/invoice/[id].svelte +++ b/src/routes/invoice/[id].svelte @@ -1,12 +1,16 @@ -{#if $user} +{#if $user && !invoicePaid}
@@ -255,6 +281,16 @@
+{:else} +
+ +

Payment Successful!

+

{totalAmountFormatted} {$preferredCurrency}

+

({totalAmountSats} SATS)

+ +
{/if}