From 794f56feabc86a2907005e1a43e8713b934b9303 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 29 Apr 2023 23:32:09 -0700 Subject: wip --- src/routes/+page.svelte | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/routes') diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 3a5a54f3..510607eb 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -23,6 +23,8 @@ let faq; let about; + let log = console.log; + const howItWorksSteps = [ { image: 'hand', stepID: 'step1' }, { image: 'bolt', stepID: 'step2' }, @@ -31,6 +33,27 @@ const faqIDs = ['cost', 'compatibility', 'safety']; + let scan = async () => { + log('User clicked scan button'); + + try { + const ndef = new NDEFReader(); + await ndef.scan(); + log('> Scan started'); + + ndef.addEventListener('readingerror', () => { + log('Argh! Cannot read data from the NFC tag. Try another one?'); + }); + + ndef.addEventListener('reading', ({ message, serialNumber }) => { + log(`> Serial Number: ${serialNumber}`); + log(`> Records: (${message.records.length})`); + }); + } catch (error) { + log('Argh! ' + error); + } + }; + onMount(async () => { close(); @@ -49,6 +72,7 @@
+ Date: Tue, 2 May 2023 14:09:51 -0700 Subject: nfc wip --- src/lib/utils.js | 6 ++++-- src/routes/(app)/+layout.server.js | 1 + src/routes/(app)/+layout.svelte | 18 +++++++++++++++++- .../(app)/[username]/card/[serial]/+page.server.js | 3 +++ .../(app)/[username]/card/[serial]/+page.svelte | 9 +++++++++ src/routes/(app)/locations/+server.js | 12 ++++++------ src/routes/+layout.js | 8 -------- src/routes/+layout.server.js | 8 ++++++++ src/routes/+layout.svelte | 4 ++-- src/routes/+page.svelte | 22 ---------------------- src/service-worker.js | 7 ------- 11 files changed, 50 insertions(+), 48 deletions(-) create mode 100644 src/routes/(app)/[username]/card/[serial]/+page.server.js create mode 100644 src/routes/(app)/[username]/card/[serial]/+page.svelte delete mode 100644 src/routes/+layout.js create mode 100644 src/routes/+layout.server.js delete mode 100644 src/service-worker.js (limited to 'src/routes') diff --git a/src/lib/utils.js b/src/lib/utils.js index 5eef79fc..be26ee45 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -25,8 +25,9 @@ export let g = (url, fetch, headers) => } }); -export let get = (url, headers = {}) => - fetch(base + url, { headers }) +export let get = (url, headers = {}) => { + console.log("GETTING", browser, base, url); + return fetch(base + url, { headers }) .then(async (r) => { if (r.ok) return r.text(); throw new Error(await r.text()); @@ -38,6 +39,7 @@ export let get = (url, headers = {}) => return body; } }); +} export let post = (url, body, headers) => { headers = { ...headers, 'content-type': 'application/json', accept: 'application/json' }; diff --git a/src/routes/(app)/+layout.server.js b/src/routes/(app)/+layout.server.js index e80e1e64..5200f572 100644 --- a/src/routes/(app)/+layout.server.js +++ b/src/routes/(app)/+layout.server.js @@ -34,6 +34,7 @@ export async function load({ cookies, request, url, params }) { throw redirect(307, `/${user.username}/generate`); try { + console.log("FETCH RATE"); rate = await get('/rate'); rates = await get('/rates'); } catch (e) { diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index 891de9ac..a0c981c1 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -21,7 +21,7 @@ ({ rate, user, subject, token, rates } = data); }; - onMount(() => { + onMount(async () => { let localStorageLocale = localStorage.getItem(localeLocalStorageKey); if (localStorageLocale) locale.set(localStorageLocale); @@ -30,8 +30,24 @@ }); if (browser) { + let log = console.log; checkSocket(); expirePin(); + + try { + const ndef = new NDEFReader(); + await ndef.scan(); + + ndef.addEventListener('readingerror', (e) => { + console.log('nfc error', e); + }); + + ndef.addEventListener('reading', ({ message, serialNumber }) => { + goto(`/${user.username}/card/${serialNumber.replace(/:/g, '-')}`); + }); + } catch (error) { + log('Argh! ' + error); + } } }); diff --git a/src/routes/(app)/[username]/card/[serial]/+page.server.js b/src/routes/(app)/[username]/card/[serial]/+page.server.js new file mode 100644 index 00000000..49d7504c --- /dev/null +++ b/src/routes/(app)/[username]/card/[serial]/+page.server.js @@ -0,0 +1,3 @@ +export let load = async ({ params }) => { + return params; +} diff --git a/src/routes/(app)/[username]/card/[serial]/+page.svelte b/src/routes/(app)/[username]/card/[serial]/+page.svelte new file mode 100644 index 00000000..e40554f2 --- /dev/null +++ b/src/routes/(app)/[username]/card/[serial]/+page.svelte @@ -0,0 +1,9 @@ + + +Card {serial} + +Balance {balance} diff --git a/src/routes/(app)/locations/+server.js b/src/routes/(app)/locations/+server.js index dd9e984b..ba5affa3 100644 --- a/src/routes/(app)/locations/+server.js +++ b/src/routes/(app)/locations/+server.js @@ -4,12 +4,12 @@ import { json } from '@sveltejs/kit'; export async function GET({ fetch, setHeaders }) { let locations = []; - try { - ({ locations } = await get('/locations')); - setHeaders({ 'cache-control': 'public, max-age=600' }); - } catch (e) { - console.log('failed to fetch locations'); - } + // try { + // ({ locations } = await get('/locations')); + // setHeaders({ 'cache-control': 'public, max-age=600' }); + // } catch (e) { + // console.log('failed to fetch locations'); + // } return json({ locations }); } diff --git a/src/routes/+layout.js b/src/routes/+layout.js deleted file mode 100644 index add74f87..00000000 --- a/src/routes/+layout.js +++ /dev/null @@ -1,8 +0,0 @@ -import { loadTranslations, locale } from '$lib/translations'; -export const load = async ({ url }) => { - const { pathname } = url; - const defaultLocale = 'en'; // get from cookie, user session, ... - const initLocale = locale.get() || defaultLocale; // set default if no locale already set - await loadTranslations(initLocale, pathname); // keep this just before the `return` - return {}; -}; diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js new file mode 100644 index 00000000..53be7741 --- /dev/null +++ b/src/routes/+layout.server.js @@ -0,0 +1,8 @@ +import { loadTranslations, locale } from '$lib/translations'; +export const load = async ({ url }) => { + const { host, pathname } = url; + const defaultLocale = 'en'; // get from cookie, user session, ... + const initLocale = locale.get() || defaultLocale; // set default if no locale already set + await loadTranslations(initLocale, pathname); // keep this just before the `return` + return { host, pathname }; +}; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index e1c3ff1e..6dc84349 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,8 +1,8 @@ diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 510607eb..3331b69b 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -33,27 +33,6 @@ const faqIDs = ['cost', 'compatibility', 'safety']; - let scan = async () => { - log('User clicked scan button'); - - try { - const ndef = new NDEFReader(); - await ndef.scan(); - log('> Scan started'); - - ndef.addEventListener('readingerror', () => { - log('Argh! Cannot read data from the NFC tag. Try another one?'); - }); - - ndef.addEventListener('reading', ({ message, serialNumber }) => { - log(`> Serial Number: ${serialNumber}`); - log(`> Records: (${message.records.length})`); - }); - } catch (error) { - log('Argh! ' + error); - } - }; - onMount(async () => { close(); @@ -72,7 +51,6 @@
- Date: Wed, 3 May 2023 10:15:06 -0700 Subject: redirect send to user urls --- src/routes/(app)/send/[...text]/+page.server.js | 2 +- src/routes/(app)/send/pot/[name]/[...amount]/+page.server.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/routes') diff --git a/src/routes/(app)/send/[...text]/+page.server.js b/src/routes/(app)/send/[...text]/+page.server.js index 513fa11e..ff014315 100644 --- a/src/routes/(app)/send/[...text]/+page.server.js +++ b/src/routes/(app)/send/[...text]/+page.server.js @@ -62,7 +62,7 @@ let parse = async (t, host) => { // user try { - user = await get(`/users/${t}`); + user = await get(`/users/${t.split('/')[0]}`); if (user.anon) user = null; } catch (e) {} diff --git a/src/routes/(app)/send/pot/[name]/[...amount]/+page.server.js b/src/routes/(app)/send/pot/[name]/[...amount]/+page.server.js index 6c11811c..3f819696 100644 --- a/src/routes/(app)/send/pot/[name]/[...amount]/+page.server.js +++ b/src/routes/(app)/send/pot/[name]/[...amount]/+page.server.js @@ -1,5 +1,5 @@ import { fail, redirect } from '@sveltejs/kit'; -import { auth, post } from '$lib/utils'; +import { auth, fd, post } from '$lib/utils'; export const actions = { default: async ({ cookies, request }) => { -- cgit v1.2.3 From c167348afa3e754655ba46f91646ecc91309174b Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 3 May 2023 13:06:52 -0700 Subject: nfc wip --- src/lib/utils.js | 1 - .../(app)/[username]/card/[serial]/+page.server.js | 21 ++++++-- .../(app)/[username]/card/[serial]/+page.svelte | 38 ++++++++++++--- src/routes/(app)/pot/[name]/+page.svelte | 54 +++++++++++++++------ static/icons/nfc.svg | 1 + static/images/moneypot.jpg | Bin 0 -> 34030 bytes 6 files changed, 91 insertions(+), 24 deletions(-) create mode 100644 static/icons/nfc.svg create mode 100644 static/images/moneypot.jpg (limited to 'src/routes') diff --git a/src/lib/utils.js b/src/lib/utils.js index be26ee45..a91ef639 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -26,7 +26,6 @@ export let g = (url, fetch, headers) => }); export let get = (url, headers = {}) => { - console.log("GETTING", browser, base, url); return fetch(base + url, { headers }) .then(async (r) => { if (r.ok) return r.text(); diff --git a/src/routes/(app)/[username]/card/[serial]/+page.server.js b/src/routes/(app)/[username]/card/[serial]/+page.server.js index 49d7504c..72ce96d5 100644 --- a/src/routes/(app)/[username]/card/[serial]/+page.server.js +++ b/src/routes/(app)/[username]/card/[serial]/+page.server.js @@ -1,3 +1,18 @@ -export let load = async ({ params }) => { - return params; -} +import { auth, get } from '$lib/utils'; +import { redirect } from "@sveltejs/kit" + +export let load = async ({ cookies, params }) => { + let { serial } = params; + let pot; + try { + pot = await get(`/pot/${serial}`, auth(cookies)); + } catch (e) { + console.log(e); + } + + console.log('POT', pot); + + if (pot) throw redirect(307, `/pot/${serial}`); + + return params; +}; diff --git a/src/routes/(app)/[username]/card/[serial]/+page.svelte b/src/routes/(app)/[username]/card/[serial]/+page.svelte index e40554f2..aee3be28 100644 --- a/src/routes/(app)/[username]/card/[serial]/+page.svelte +++ b/src/routes/(app)/[username]/card/[serial]/+page.svelte @@ -1,9 +1,35 @@ -Card {serial} - -Balance {balance} +
+
+

Card {serial}

+
+ +
diff --git a/src/routes/(app)/pot/[name]/+page.svelte b/src/routes/(app)/pot/[name]/+page.svelte index 7b3d890b..653166c7 100644 --- a/src/routes/(app)/pot/[name]/+page.svelte +++ b/src/routes/(app)/pot/[name]/+page.svelte @@ -20,6 +20,9 @@ $: amountFiat = parseFloat(((amount * rate) / sats).toFixed(2)); $loginRedirect = $page.url.pathname; + + let show; + let toggle = () => (show = !show);
@@ -31,12 +34,15 @@
-
+
-

Public Pot

+ +

Money Pot

Anyone who knows the URL to this pot can add or take out funds

- {name} + {#if show} + {name} + {/if}

@@ -47,17 +53,37 @@

-
- - - - - - + +
+ +
{#each payments as p} diff --git a/static/icons/nfc.svg b/static/icons/nfc.svg new file mode 100644 index 00000000..3fa2de48 --- /dev/null +++ b/static/icons/nfc.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/moneypot.jpg b/static/images/moneypot.jpg new file mode 100644 index 00000000..2084a99a Binary files /dev/null and b/static/images/moneypot.jpg differ -- cgit v1.2.3 From 43208081323a56f4603c6d94a0764be764516ec0 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 5 May 2023 08:12:23 -0700 Subject: nfc wip --- src/lib/store.js | 1 + src/routes/(app)/+layout.svelte | 10 +-- .../(app)/[username]/(profile)/+layout.svelte | 12 +-- src/routes/(app)/[username]/(profile)/+page.svelte | 65 +++++++-------- .../(app)/[username]/card/[serial]/+page.server.js | 2 - .../(app)/[username]/invoice/[hash]/+page.svelte | 39 ++++++++- .../[username]/invoice/[hash]/paid/+page.svelte | 2 +- .../[username]/payments/[...page]/+page.svelte | 6 +- src/routes/(app)/pot/[name]/+page.svelte | 91 +++++++++++++-------- .../(app)/pot/[name]/withdraw/+page.server.js | 2 +- src/routes/(app)/pot/[name]/withdraw/+page.svelte | 5 +- src/routes/(app)/pot/[name]/withdraw/+server.js | 6 ++ src/routes/(app)/send/invoice/[id]/+page.svelte | 19 +++++ src/routes/(app)/withdraw/+server.js | 1 + static/icons/nfc.svg | 14 +++- static/images/moneypot.png | Bin 0 -> 278763 bytes 16 files changed, 188 insertions(+), 87 deletions(-) create mode 100644 src/routes/(app)/pot/[name]/withdraw/+server.js create mode 100644 static/images/moneypot.png (limited to 'src/routes') diff --git a/src/lib/store.js b/src/lib/store.js index 4e88c90c..923bda52 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -52,3 +52,4 @@ export const request = writable(); export const requestRedirect = writable(); export const token = persistSession('token'); export const user = writable(); +export const ndef = writable(); diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index a0c981c1..cd8919e4 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -2,7 +2,7 @@ import { SvelteToast } from '@zerodevx/svelte-toast'; import { onDestroy, onMount } from 'svelte'; import { close, connect, send } from '$lib/socket'; - import { last, invoice, request, passwordPrompt, pin } from '$lib/store'; + import { last, invoice, request, ndef, passwordPrompt, pin } from '$lib/store'; import { page } from '$app/stores'; import { browser } from '$app/environment'; import { goto } from '$app/navigation'; @@ -35,14 +35,14 @@ expirePin(); try { - const ndef = new NDEFReader(); - await ndef.scan(); + $ndef = new NDEFReader(); + await $ndef.scan(); - ndef.addEventListener('readingerror', (e) => { + $ndef.addEventListener('readingerror', (e) => { console.log('nfc error', e); }); - ndef.addEventListener('reading', ({ message, serialNumber }) => { + $ndef.addEventListener('reading', ({ message, serialNumber }) => { goto(`/${user.username}/card/${serialNumber.replace(/:/g, '-')}`); }); } catch (error) { diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index df9b9ad8..fe12a124 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -46,18 +46,20 @@ let toggleBio = () => (hideBio = false); -
+