diff options
| author | Adam Soltys <[email protected]> | 2022-11-02 19:47:29 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-11-02 19:48:18 -0700 |
| commit | f0d88333750a2865d3016e92620a87269160effa (patch) | |
| tree | 1cc276efeb5287e1fc176ec60d46aed091ab08ca | |
| parent | b66477f0912349ef91adaff8c57ac787b5a56447 (diff) | |
| download | coinos-ui-f0d88333750a2865d3016e92620a87269160effa.tar.gz coinos-ui-f0d88333750a2865d3016e92620a87269160effa.zip | |
move to app layout
| -rw-r--r-- | src/lib/socket.js | 10 | ||||
| -rw-r--r-- | src/lib/utils.js | 8 | ||||
| -rw-r--r-- | src/locales/en.json | 2 | ||||
| -rw-r--r-- | src/routes/(app)/+error.svelte (renamed from src/routes/+error.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/+layout.server.js (renamed from src/routes/+layout.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/+layout.svelte | 87 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/+layout.svelte (renamed from src/routes/[username]/+layout.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/+page.server.js (renamed from src/routes/[username]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/+page.svelte (renamed from src/routes/[username]/+page.svelte) | 43 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/bitcoin/+page.server.js (renamed from src/routes/[username]/bitcoin/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/bitcoin/+page.svelte (renamed from src/routes/[username]/bitcoin/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/customers/+page.svelte (renamed from src/routes/[username]/customers/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/dashboard/+page.server.js (renamed from src/routes/[username]/dashboard/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/dashboard/+page.svelte (renamed from src/routes/[username]/dashboard/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/receive/+page.server.js (renamed from src/routes/[username]/receive/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/receive/+page.svelte (renamed from src/routes/[username]/receive/+page.svelte) | 2 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/receive/[network]/[amount]/+page.server.js (renamed from src/routes/[username]/receive/[network]/[amount]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/receive/[network]/[amount]/+page.svelte (renamed from src/routes/[username]/receive/[network]/[amount]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/+page.server.js (renamed from src/routes/[username]/settings/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/+page.svelte (renamed from src/routes/[username]/settings/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/_account.svelte (renamed from src/routes/[username]/settings/_account.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/_pos.svelte (renamed from src/routes/[username]/settings/_pos.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/_security.svelte (renamed from src/routes/[username]/settings/_security.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/support/+page.server.js (renamed from src/routes/[username]/support/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/support/+page.svelte (renamed from src/routes/[username]/support/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/transactions/[...page]/+page.server.js (renamed from src/routes/[username]/transactions/[...page]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/transactions/[...page]/+page.svelte (renamed from src/routes/[username]/transactions/[...page]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/disable2fa/+server.js (renamed from src/routes/disable2fa/+server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/enable2fa/+server.js (renamed from src/routes/enable2fa/+server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/+layout.server.js (renamed from src/routes/invoice/[id]/+layout.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/+layout.svelte (renamed from src/routes/invoice/[id]/+layout.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/+page.server.js (renamed from src/routes/invoice/[id]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/+page.svelte (renamed from src/routes/invoice/[id]/+page.svelte) | 13 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/paid/+page.svelte (renamed from src/routes/invoice/[id]/paid/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/tip/+page.server.js (renamed from src/routes/invoice/[id]/tip/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/invoice/[id]/tip/+page.svelte (renamed from src/routes/invoice/[id]/tip/+page.svelte) | 5 | ||||
| -rw-r--r-- | src/routes/(app)/jobs/+page.svelte (renamed from src/routes/jobs/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/+page.server.js (renamed from src/routes/launch/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/+page.svelte (renamed from src/routes/launch/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/+page.server.js (renamed from src/routes/launch/purchase/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/+page.svelte (renamed from src/routes/launch/purchase/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/card/+page.server.js (renamed from src/routes/launch/purchase/card/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/card/+page.svelte (renamed from src/routes/launch/purchase/card/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/register/+page.svelte (renamed from src/routes/launch/register/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/thanks/[asset]/+page.server.js (renamed from src/routes/launch/thanks/[asset]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/thanks/[asset]/+page.svelte (renamed from src/routes/launch/thanks/[asset]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/ticket/+page.server.js (renamed from src/routes/launch/ticket/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/launch/ticket/+page.svelte (renamed from src/routes/launch/ticket/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/locations/+server.js (renamed from src/routes/locations/+server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/login/+page.server.js (renamed from src/routes/login/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/login/+page.svelte (renamed from src/routes/login/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/logout/+page.server.js (renamed from src/routes/logout/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/logout/+page.svelte (renamed from src/routes/logout/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/news/+page.svelte (renamed from src/routes/news/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/register/+page.server.js (renamed from src/routes/register/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/register/+page.svelte (renamed from src/routes/register/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/scan/+page.svelte (renamed from src/routes/scan/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/+layout.svelte (renamed from src/routes/send/+layout.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/[...text]/+page.server.js (renamed from src/routes/send/[...text]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/[...text]/+page.svelte (renamed from src/routes/send/[...text]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/[uuid=uuid]/+page.server.js (renamed from src/routes/send/[uuid=uuid]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/[uuid=uuid]/+page.svelte (renamed from src/routes/send/[uuid=uuid]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/+page.server.js (renamed from src/routes/send/bitcoin/[address]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/bitcoin/[address]/+page.svelte (renamed from src/routes/send/bitcoin/[address]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/lightning/[payreq]/+page.server.js (renamed from src/routes/send/lightning/[payreq]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/lightning/[payreq]/+page.svelte (renamed from src/routes/send/lightning/[payreq]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/lnurl/+page.svelte (renamed from src/routes/send/lnurl/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/user/[username]/[...amount]/+page.server.js (renamed from src/routes/send/user/[username]/[...amount]/+page.server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/send/user/[username]/[...amount]/+page.svelte (renamed from src/routes/send/user/[username]/[...amount]/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/sent/+page.svelte (renamed from src/routes/sent/+page.svelte) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/user/+server.js (renamed from src/routes/user/+server.js) | 0 | ||||
| -rw-r--r-- | src/routes/(app)/withdraw/+server.js (renamed from src/routes/withdraw/+server.js) | 0 | ||||
| -rw-r--r-- | src/routes/+layout.svelte | 75 |
73 files changed, 140 insertions, 105 deletions
diff --git a/src/lib/socket.js b/src/lib/socket.js index df20fdd8..94c1802e 100644 --- a/src/lib/socket.js +++ b/src/lib/socket.js @@ -6,7 +6,7 @@ import { env } from '$env/dynamic/public'; const socketUrl = env.PUBLIC_SOCKET; const btc = env.PUBLIC_BTC; -let interval, socket, token; +let socket, token; export const auth = () => token && send('login', token); @@ -15,19 +15,23 @@ export const send = (type, data) => { }; export const messages = (data) => ({ - rate() { + id() { last.set(Date.now()); + }, + + rate() { rate.set(data); }, async payment() { let { amount, invoice } = data; - if (get(user).account_id !== data.account_id) return; if (invoice) { invoices.set({ ...get(invoices), [invoice.uuid]: invoice }); } + if (get(user).account_id !== data.account_id) return; + newPayment.set(true); if (amount > 0) { success(`Received ${amount} sats!`); diff --git a/src/lib/utils.js b/src/lib/utils.js index 41435bf6..e2c8f955 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -144,3 +144,11 @@ export const sats = 100000000; export const back = () => browser && history.go(-1); export const focus = (el) => setTimeout(() => el.focus()); + + +export const wait = async (f, s = 300) => { + let i = 0; + while (!(await f()) && i < s) (await sleep(1000)) && i++; + if (i >= s) throw new Error("timeout"); + return f(); +}; diff --git a/src/locales/en.json b/src/locales/en.json index b3ecbed2..be7baa71 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -160,6 +160,8 @@ "update1": "" }, "user": { + "unfollow": "Unfollow", + "following": "Following", "follow": "Follow", "remove": "Remove", "scanToPayBTC": "Scan to pay with bitcoin", diff --git a/src/routes/+error.svelte b/src/routes/(app)/+error.svelte index d561b111..d561b111 100644 --- a/src/routes/+error.svelte +++ b/src/routes/(app)/+error.svelte diff --git a/src/routes/+layout.server.js b/src/routes/(app)/+layout.server.js index 6d1fc3e0..6d1fc3e0 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/(app)/+layout.server.js diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte new file mode 100644 index 00000000..10b16449 --- /dev/null +++ b/src/routes/(app)/+layout.svelte @@ -0,0 +1,87 @@ +<script> + import { SvelteToast } from '@zerodevx/svelte-toast'; + import { onDestroy, onMount } from 'svelte'; + import { close, connect, send } from '$lib/socket'; + import { last, selectedRate, rate, user } from '$lib/store'; + import { page } from '$app/stores'; + import { browser } from '$app/environment'; + import { goto } from '$app/navigation'; + import { LoadingSplash } from '$comp'; + import { warning, protectedRoutes } from '$lib/utils'; + import { t, locale } from '$lib/translations'; + + const localeLocalStorageKey = 'sveltekit-i18n-locale'; + + export let data; + + let { subject } = $page.data; + let r, u, token, rates; + + $: update(data); + let update = () => { + ({ user: u, rate: r, token, rates } = data); + $rate = r; + $user = u; + }; + + $: $page.url.searchParams.get('logout') && close(); + + $: $selectedRate = r * (rates[u?.currency || 'USD'] / rates.USD); + + onMount(() => { + let localStorageLocale = localStorage.getItem(localeLocalStorageKey); + if (localStorageLocale) locale.set(localStorageLocale); + + locale.subscribe((lng) => { + if (lng) localStorage.setItem(localeLocalStorageKey, lng); + }); + + browser && checkSocket(); + }); + + $: browser && connect(token); + + let lost, + timer, + counter = 0; + + let checkSocket = () => { + counter++; + lost = Date.now() - $last > 15000; + if (lost) close(); + if (counter > 5) { + send('heartbeat'); + counter = 0; + } + timer = setTimeout(checkSocket, 1000); + }; + + onDestroy(() => browser && clearTimeout(timer)); +</script> + +<svelte:head> + {#if subject} + <title>coinos - {subject.username}</title> + <meta name="lightning" content={`lnurlp:${subject.username}@coinos.io`} /> + {:else} + <title>coinos</title> + {/if} + + {#if subject?.profile} + <meta name="og:image" content={`/api/public/${subject.username}-profile.webp`} /> + {:else} + <meta property="og:image" content="/icons/logo.svg" /> + {/if} +</svelte:head> + +<SvelteToast options={{ reversed: true, intro: { y: 192 } }} /> + +{#if lost} + <div class="fixed bottom-12 right-12 text-red-600 bg-white z-50 px-4 py-2 rounded-full border"> + Lost connection to server, try refreshing + </div> +{/if} + +<main data-sveltekit-prefetch> + <slot /> +</main> diff --git a/src/routes/[username]/+layout.svelte b/src/routes/(app)/[username]/+layout.svelte index b2efa894..b2efa894 100644 --- a/src/routes/[username]/+layout.svelte +++ b/src/routes/(app)/[username]/+layout.svelte diff --git a/src/routes/[username]/+page.server.js b/src/routes/(app)/[username]/+page.server.js index 0840161a..0840161a 100644 --- a/src/routes/[username]/+page.server.js +++ b/src/routes/(app)/[username]/+page.server.js diff --git a/src/routes/[username]/+page.svelte b/src/routes/(app)/[username]/+page.svelte index 298af55b..810fb567 100644 --- a/src/routes/[username]/+page.svelte +++ b/src/routes/(app)/[username]/+page.svelte @@ -40,35 +40,30 @@ <div class="p-10 pt-20"> <h1 class="text-3xl font-bold">{subject.username}</h1> - <p class="text-secondary w-64"> + <p class="text-secondary w-64 mb-4"> {subject.address && subject.address !== 'null' ? subject.address : ''} </p> - <!-- TODO - we need to hook this up - <button - class="border rounded-full py-2 w-28 font-semibold flex justify-center items-center text-sm" - on:click={() => (followed = !followed)} - ><Icon icon={followed ? 'minus' : 'plus'} style="mr-1" /> - {$t('user.' + (followed ? 'remove' : 'follow'))} - </button> - --> + <div class="flex gap-2"> + <button + class="border rounded-full py-2 w-28 font-semibold flex justify-center items-center text-sm" + on:click={() => (followed = !followed)} + ><Icon icon={followed ? 'minus' : 'plus'} style="mr-1" /> + {$t('user.' + (followed ? 'following' : 'follow'))} + </button> + + <a href={`/${subject.username}/receive`}> + <button + class="border rounded-full py-2 w-28 font-semibold flex justify-center items-center text-sm" + > + <Icon icon="send" style="mr-1" /> + Pay + </button> + </a> + </div> </div> <div class="space-y-5 md:mt-20 mx-auto w-[350px]"> - <!-- <div class="flex justify-center gap-2"> --> - <!-- <a href={`/${subject.username}`}> --> - <!-- <button --> - <!-- class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2 bg-black text-white" --> - <!-- >Lightning</button --> - <!-- > --> - <!-- </a> --> - <!-- <a href={`/${subject.username}/bitcoin`}> --> - <!-- <button class="rounded-full border py-2 px-5 font-bold hover:opacity-80 w-full mb-2" --> - <!-- >Bitcoin</button --> - <!-- > --> - <!-- </a> --> - <!-- </div> --> <div on:click={() => copy(lightningAddress)} id="qr" @@ -82,7 +77,7 @@ </button> </div> <p class="text-center"> - This is a re-usable <a href="https://lightningaddress.com/" class="underline" target="_blank" + This is a <a href="https://lightningaddress.com/" class="underline" target="_blank" >lightning address</a > </p> diff --git a/src/routes/[username]/bitcoin/+page.server.js b/src/routes/(app)/[username]/bitcoin/+page.server.js index 7ef65346..7ef65346 100644 --- a/src/routes/[username]/bitcoin/+page.server.js +++ b/src/routes/(app)/[username]/bitcoin/+page.server.js diff --git a/src/routes/[username]/bitcoin/+page.svelte b/src/routes/(app)/[username]/bitcoin/+page.svelte index e69de29b..e69de29b 100644 --- a/src/routes/[username]/bitcoin/+page.svelte +++ b/src/routes/(app)/[username]/bitcoin/+page.svelte diff --git a/src/routes/[username]/customers/+page.svelte b/src/routes/(app)/[username]/customers/+page.svelte index e69de29b..e69de29b 100644 --- a/src/routes/[username]/customers/+page.svelte +++ b/src/routes/(app)/[username]/customers/+page.svelte diff --git a/src/routes/[username]/dashboard/+page.server.js b/src/routes/(app)/[username]/dashboard/+page.server.js index b6206324..b6206324 100644 --- a/src/routes/[username]/dashboard/+page.server.js +++ b/src/routes/(app)/[username]/dashboard/+page.server.js diff --git a/src/routes/[username]/dashboard/+page.svelte b/src/routes/(app)/[username]/dashboard/+page.svelte index 160887e3..160887e3 100644 --- a/src/routes/[username]/dashboard/+page.svelte +++ b/src/routes/(app)/[username]/dashboard/+page.svelte diff --git a/src/routes/[username]/receive/+page.server.js b/src/routes/(app)/[username]/receive/+page.server.js index 1068f273..1068f273 100644 --- a/src/routes/[username]/receive/+page.server.js +++ b/src/routes/(app)/[username]/receive/+page.server.js diff --git a/src/routes/[username]/receive/+page.svelte b/src/routes/(app)/[username]/receive/+page.svelte index 3ae831c6..11d3a6db 100644 --- a/src/routes/[username]/receive/+page.svelte +++ b/src/routes/(app)/[username]/receive/+page.svelte @@ -6,7 +6,7 @@ export let data; let amount; - let { currency, username } = data.user; + let { currency, username } = data.subject; </script> <form method="POST" class="flex justify-center items-center mt-24 mb-3 px-3" use:enhance> diff --git a/src/routes/[username]/receive/[network]/[amount]/+page.server.js b/src/routes/(app)/[username]/receive/[network]/[amount]/+page.server.js index e69de29b..e69de29b 100644 --- a/src/routes/[username]/receive/[network]/[amount]/+page.server.js +++ b/src/routes/(app)/[username]/receive/[network]/[amount]/+page.server.js diff --git a/src/routes/[username]/receive/[network]/[amount]/+page.svelte b/src/routes/(app)/[username]/receive/[network]/[amount]/+page.svelte index 45b983be..45b983be 100644 --- a/src/routes/[username]/receive/[network]/[amount]/+page.svelte +++ b/src/routes/(app)/[username]/receive/[network]/[amount]/+page.svelte diff --git a/src/routes/[username]/settings/+page.server.js b/src/routes/(app)/[username]/settings/+page.server.js index ae7e0a78..ae7e0a78 100644 --- a/src/routes/[username]/settings/+page.server.js +++ b/src/routes/(app)/[username]/settings/+page.server.js diff --git a/src/routes/[username]/settings/+page.svelte b/src/routes/(app)/[username]/settings/+page.svelte index 86705b1d..86705b1d 100644 --- a/src/routes/[username]/settings/+page.svelte +++ b/src/routes/(app)/[username]/settings/+page.svelte diff --git a/src/routes/[username]/settings/_account.svelte b/src/routes/(app)/[username]/settings/_account.svelte index e49205ca..e49205ca 100644 --- a/src/routes/[username]/settings/_account.svelte +++ b/src/routes/(app)/[username]/settings/_account.svelte diff --git a/src/routes/[username]/settings/_pos.svelte b/src/routes/(app)/[username]/settings/_pos.svelte index cf4a5ece..cf4a5ece 100644 --- a/src/routes/[username]/settings/_pos.svelte +++ b/src/routes/(app)/[username]/settings/_pos.svelte diff --git a/src/routes/[username]/settings/_security.svelte b/src/routes/(app)/[username]/settings/_security.svelte index 98b9b503..98b9b503 100644 --- a/src/routes/[username]/settings/_security.svelte +++ b/src/routes/(app)/[username]/settings/_security.svelte diff --git a/src/routes/[username]/support/+page.server.js b/src/routes/(app)/[username]/support/+page.server.js index a335ec96..a335ec96 100644 --- a/src/routes/[username]/support/+page.server.js +++ b/src/routes/(app)/[username]/support/+page.server.js diff --git a/src/routes/[username]/support/+page.svelte b/src/routes/(app)/[username]/support/+page.svelte index cd1cc69f..cd1cc69f 100644 --- a/src/routes/[username]/support/+page.svelte +++ b/src/routes/(app)/[username]/support/+page.svelte diff --git a/src/routes/[username]/transactions/[...page]/+page.server.js b/src/routes/(app)/[username]/transactions/[...page]/+page.server.js index 6883dfa9..6883dfa9 100644 --- a/src/routes/[username]/transactions/[...page]/+page.server.js +++ b/src/routes/(app)/[username]/transactions/[...page]/+page.server.js diff --git a/src/routes/[username]/transactions/[...page]/+page.svelte b/src/routes/(app)/[username]/transactions/[...page]/+page.svelte index dd58509a..dd58509a 100644 --- a/src/routes/[username]/transactions/[...page]/+page.svelte +++ b/src/routes/(app)/[username]/transactions/[...page]/+page.svelte diff --git a/src/routes/disable2fa/+server.js b/src/routes/(app)/disable2fa/+server.js index 237da445..237da445 100644 --- a/src/routes/disable2fa/+server.js +++ b/src/routes/(app)/disable2fa/+server.js diff --git a/src/routes/enable2fa/+server.js b/src/routes/(app)/enable2fa/+server.js index 344850da..344850da 100644 --- a/src/routes/enable2fa/+server.js +++ b/src/routes/(app)/enable2fa/+server.js diff --git a/src/routes/invoice/[id]/+layout.server.js b/src/routes/(app)/invoice/[id]/+layout.server.js index 690deda0..690deda0 100644 --- a/src/routes/invoice/[id]/+layout.server.js +++ b/src/routes/(app)/invoice/[id]/+layout.server.js diff --git a/src/routes/invoice/[id]/+layout.svelte b/src/routes/(app)/invoice/[id]/+layout.svelte index 4fa864ce..4fa864ce 100644 --- a/src/routes/invoice/[id]/+layout.svelte +++ b/src/routes/(app)/invoice/[id]/+layout.svelte diff --git a/src/routes/invoice/[id]/+page.server.js b/src/routes/(app)/invoice/[id]/+page.server.js index 1068f273..1068f273 100644 --- a/src/routes/invoice/[id]/+page.server.js +++ b/src/routes/(app)/invoice/[id]/+page.server.js diff --git a/src/routes/invoice/[id]/+page.svelte b/src/routes/(app)/invoice/[id]/+page.svelte index 7a888d5c..bb41a116 100644 --- a/src/routes/invoice/[id]/+page.svelte +++ b/src/routes/(app)/invoice/[id]/+page.svelte @@ -1,4 +1,5 @@ <script> + import { send } from '$lib/socket'; import { back, copy, f, get, reverseFormat, s, sats } from '$lib/utils'; import { onMount, onDestroy } from 'svelte'; import { browser } from '$app/environment'; @@ -51,13 +52,21 @@ screenfull.toggle(qr); let el = document.getElementById('qr'); el.style.width = '300px'; - console.log('yes', el); }; + + let subbed; + onMount(() => { + browser && + last.subscribe((v) => { + if (!v || subbed) return; + subbed = true; + send('subscribe', invoice); + }); + }); </script> <button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" - class:invisible={!user} on:click={back} > <Icon icon="arrow-left" style="w-10" /> diff --git a/src/routes/invoice/[id]/paid/+page.svelte b/src/routes/(app)/invoice/[id]/paid/+page.svelte index d619b7ff..d619b7ff 100644 --- a/src/routes/invoice/[id]/paid/+page.svelte +++ b/src/routes/(app)/invoice/[id]/paid/+page.svelte diff --git a/src/routes/invoice/[id]/tip/+page.server.js b/src/routes/(app)/invoice/[id]/tip/+page.server.js index 1068f273..1068f273 100644 --- a/src/routes/invoice/[id]/tip/+page.server.js +++ b/src/routes/(app)/invoice/[id]/tip/+page.server.js diff --git a/src/routes/invoice/[id]/tip/+page.svelte b/src/routes/(app)/invoice/[id]/tip/+page.svelte index 12e8e257..6ea3aae5 100644 --- a/src/routes/invoice/[id]/tip/+page.svelte +++ b/src/routes/(app)/invoice/[id]/tip/+page.svelte @@ -1,7 +1,7 @@ <script> import { browser } from '$app/environment'; import { invoices } from '$lib/store'; - import { copy, f, get, reverseFormat, s, sats } from '$lib/utils'; + import { back, copy, f, get, reverseFormat, s, sats } from '$lib/utils'; import { Icon } from '$comp'; import { goto } from '$app/navigation'; import { t } from '$lib/translations'; @@ -109,8 +109,7 @@ <button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" - class:invisible={!user} - on:click={() => goto(`/${username}/receive`)} + on:click={back} > <Icon icon="arrow-left" style="w-10" /> </button> diff --git a/src/routes/jobs/+page.svelte b/src/routes/(app)/jobs/+page.svelte index fc82f9d5..fc82f9d5 100644 --- a/src/routes/jobs/+page.svelte +++ b/src/routes/(app)/jobs/+page.svelte diff --git a/src/routes/launch/+page.server.js b/src/routes/(app)/launch/+page.server.js index 2b44dfae..2b44dfae 100644 --- a/src/routes/launch/+page.server.js +++ b/src/routes/(app)/launch/+page.server.js diff --git a/src/routes/launch/+page.svelte b/src/routes/(app)/launch/+page.svelte index 3469f0bc..3469f0bc 100644 --- a/src/routes/launch/+page.svelte +++ b/src/routes/(app)/launch/+page.svelte diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/(app)/launch/purchase/+page.server.js index 2ecce695..2ecce695 100644 --- a/src/routes/launch/purchase/+page.server.js +++ b/src/routes/(app)/launch/purchase/+page.server.js diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/(app)/launch/purchase/+page.svelte index 3273752a..3273752a 100644 --- a/src/routes/launch/purchase/+page.svelte +++ b/src/routes/(app)/launch/purchase/+page.svelte diff --git a/src/routes/launch/purchase/card/+page.server.js b/src/routes/(app)/launch/purchase/card/+page.server.js index 1f564f78..1f564f78 100644 --- a/src/routes/launch/purchase/card/+page.server.js +++ b/src/routes/(app)/launch/purchase/card/+page.server.js diff --git a/src/routes/launch/purchase/card/+page.svelte b/src/routes/(app)/launch/purchase/card/+page.svelte index 05d09025..05d09025 100644 --- a/src/routes/launch/purchase/card/+page.svelte +++ b/src/routes/(app)/launch/purchase/card/+page.svelte diff --git a/src/routes/launch/register/+page.svelte b/src/routes/(app)/launch/register/+page.svelte index 437a48f1..437a48f1 100644 --- a/src/routes/launch/register/+page.svelte +++ b/src/routes/(app)/launch/register/+page.svelte diff --git a/src/routes/launch/thanks/[asset]/+page.server.js b/src/routes/(app)/launch/thanks/[asset]/+page.server.js index e9e01376..e9e01376 100644 --- a/src/routes/launch/thanks/[asset]/+page.server.js +++ b/src/routes/(app)/launch/thanks/[asset]/+page.server.js diff --git a/src/routes/launch/thanks/[asset]/+page.svelte b/src/routes/(app)/launch/thanks/[asset]/+page.svelte index 43f10057..43f10057 100644 --- a/src/routes/launch/thanks/[asset]/+page.svelte +++ b/src/routes/(app)/launch/thanks/[asset]/+page.svelte diff --git a/src/routes/launch/ticket/+page.server.js b/src/routes/(app)/launch/ticket/+page.server.js index 0362eb7d..0362eb7d 100644 --- a/src/routes/launch/ticket/+page.server.js +++ b/src/routes/(app)/launch/ticket/+page.server.js diff --git a/src/routes/launch/ticket/+page.svelte b/src/routes/(app)/launch/ticket/+page.svelte index 3879abcd..3879abcd 100644 --- a/src/routes/launch/ticket/+page.svelte +++ b/src/routes/(app)/launch/ticket/+page.svelte diff --git a/src/routes/locations/+server.js b/src/routes/(app)/locations/+server.js index 381919ab..381919ab 100644 --- a/src/routes/locations/+server.js +++ b/src/routes/(app)/locations/+server.js diff --git a/src/routes/login/+page.server.js b/src/routes/(app)/login/+page.server.js index b46af49e..b46af49e 100644 --- a/src/routes/login/+page.server.js +++ b/src/routes/(app)/login/+page.server.js diff --git a/src/routes/login/+page.svelte b/src/routes/(app)/login/+page.svelte index 75998cd0..75998cd0 100644 --- a/src/routes/login/+page.svelte +++ b/src/routes/(app)/login/+page.svelte diff --git a/src/routes/logout/+page.server.js b/src/routes/(app)/logout/+page.server.js index 1b4a1dc1..1b4a1dc1 100644 --- a/src/routes/logout/+page.server.js +++ b/src/routes/(app)/logout/+page.server.js diff --git a/src/routes/logout/+page.svelte b/src/routes/(app)/logout/+page.svelte index e69de29b..e69de29b 100644 --- a/src/routes/logout/+page.svelte +++ b/src/routes/(app)/logout/+page.svelte diff --git a/src/routes/news/+page.svelte b/src/routes/(app)/news/+page.svelte index 7eb1b7d9..7eb1b7d9 100644 --- a/src/routes/news/+page.svelte +++ b/src/routes/(app)/news/+page.svelte diff --git a/src/routes/register/+page.server.js b/src/routes/(app)/register/+page.server.js index c5751d4c..c5751d4c 100644 --- a/src/routes/register/+page.server.js +++ b/src/routes/(app)/register/+page.server.js diff --git a/src/routes/register/+page.svelte b/src/routes/(app)/register/+page.svelte index fd9e4417..fd9e4417 100644 --- a/src/routes/register/+page.svelte +++ b/src/routes/(app)/register/+page.svelte diff --git a/src/routes/scan/+page.svelte b/src/routes/(app)/scan/+page.svelte index 10c288dd..10c288dd 100644 --- a/src/routes/scan/+page.svelte +++ b/src/routes/(app)/scan/+page.svelte diff --git a/src/routes/send/+layout.svelte b/src/routes/(app)/send/+layout.svelte index c9122466..c9122466 100644 --- a/src/routes/send/+layout.svelte +++ b/src/routes/(app)/send/+layout.svelte diff --git a/src/routes/send/[...text]/+page.server.js b/src/routes/(app)/send/[...text]/+page.server.js index b909ab4d..b909ab4d 100644 --- a/src/routes/send/[...text]/+page.server.js +++ b/src/routes/(app)/send/[...text]/+page.server.js diff --git a/src/routes/send/[...text]/+page.svelte b/src/routes/(app)/send/[...text]/+page.svelte index 1311422e..1311422e 100644 --- a/src/routes/send/[...text]/+page.svelte +++ b/src/routes/(app)/send/[...text]/+page.svelte diff --git a/src/routes/send/[uuid=uuid]/+page.server.js b/src/routes/(app)/send/[uuid=uuid]/+page.server.js index c9c77f70..c9c77f70 100644 --- a/src/routes/send/[uuid=uuid]/+page.server.js +++ b/src/routes/(app)/send/[uuid=uuid]/+page.server.js diff --git a/src/routes/send/[uuid=uuid]/+page.svelte b/src/routes/(app)/send/[uuid=uuid]/+page.svelte index 73712f71..73712f71 100644 --- a/src/routes/send/[uuid=uuid]/+page.svelte +++ b/src/routes/(app)/send/[uuid=uuid]/+page.svelte diff --git a/src/routes/send/bitcoin/[address]/+page.server.js b/src/routes/(app)/send/bitcoin/[address]/+page.server.js index 642593ab..642593ab 100644 --- a/src/routes/send/bitcoin/[address]/+page.server.js +++ b/src/routes/(app)/send/bitcoin/[address]/+page.server.js diff --git a/src/routes/send/bitcoin/[address]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/+page.svelte index 744bfe9d..744bfe9d 100644 --- a/src/routes/send/bitcoin/[address]/+page.svelte +++ b/src/routes/(app)/send/bitcoin/[address]/+page.svelte diff --git a/src/routes/send/lightning/[payreq]/+page.server.js b/src/routes/(app)/send/lightning/[payreq]/+page.server.js index 8d60628b..8d60628b 100644 --- a/src/routes/send/lightning/[payreq]/+page.server.js +++ b/src/routes/(app)/send/lightning/[payreq]/+page.server.js diff --git a/src/routes/send/lightning/[payreq]/+page.svelte b/src/routes/(app)/send/lightning/[payreq]/+page.svelte index e738c9a3..e738c9a3 100644 --- a/src/routes/send/lightning/[payreq]/+page.svelte +++ b/src/routes/(app)/send/lightning/[payreq]/+page.svelte diff --git a/src/routes/send/lnurl/+page.svelte b/src/routes/(app)/send/lnurl/+page.svelte index e69de29b..e69de29b 100644 --- a/src/routes/send/lnurl/+page.svelte +++ b/src/routes/(app)/send/lnurl/+page.svelte diff --git a/src/routes/send/user/[username]/[...amount]/+page.server.js b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js index a659eef3..a659eef3 100644 --- a/src/routes/send/user/[username]/[...amount]/+page.server.js +++ b/src/routes/(app)/send/user/[username]/[...amount]/+page.server.js diff --git a/src/routes/send/user/[username]/[...amount]/+page.svelte b/src/routes/(app)/send/user/[username]/[...amount]/+page.svelte index 89cec12f..89cec12f 100644 --- a/src/routes/send/user/[username]/[...amount]/+page.svelte +++ b/src/routes/(app)/send/user/[username]/[...amount]/+page.svelte diff --git a/src/routes/sent/+page.svelte b/src/routes/(app)/sent/+page.svelte index 5c2301fa..5c2301fa 100644 --- a/src/routes/sent/+page.svelte +++ b/src/routes/(app)/sent/+page.svelte diff --git a/src/routes/user/+server.js b/src/routes/(app)/user/+server.js index b9c37e6e..b9c37e6e 100644 --- a/src/routes/user/+server.js +++ b/src/routes/(app)/user/+server.js diff --git a/src/routes/withdraw/+server.js b/src/routes/(app)/withdraw/+server.js index 718707d0..718707d0 100644 --- a/src/routes/withdraw/+server.js +++ b/src/routes/(app)/withdraw/+server.js diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index d68e837c..769a541b 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,82 +1,13 @@ <script> - import { SvelteToast } from '@zerodevx/svelte-toast'; import '../app.css'; - import { onDestroy, onMount } from 'svelte'; - import { close, connect, send } from '$lib/socket'; - import { last, selectedRate, rate, user } from '$lib/store'; - import { page } from '$app/stores'; - import { browser } from '$app/environment'; - import { goto } from '$app/navigation'; - import { LoadingSplash } from '$comp'; - import { warning, protectedRoutes } from '$lib/utils'; - import { t, locale } from '$lib/translations'; - - const localeLocalStorageKey = 'sveltekit-i18n-locale'; - - export let data; - - let { subject } = $page.data; - let r, u, token, rates; - - $: update(data); - let update = () => { - ({ user: u, rate: r, token, rates } = data); - $rate = r; - $user = u; - }; - - $: $selectedRate = u && r * (rates[u.currency] / rates.USD); - - onMount(() => { - let localStorageLocale = localStorage.getItem(localeLocalStorageKey); - if (localStorageLocale) locale.set(localStorageLocale); - - locale.subscribe((lng) => { - if (lng) localStorage.setItem(localeLocalStorageKey, lng); - }); - - browser && count(); - }); - - $: browser && connect(token); - - let lost, timer; - let count = () => { - lost = Date.now() - $last > 10000; - if (lost) connect(token); - send('heartbeat'); - timer = setTimeout(count, 500); - }; - - onDestroy(() => browser && clearTimeout(timer)); </script> <svelte:head> - {#if subject} - <title>coinos - {subject.username}</title> - <meta name="lightning" content={`lnurlp:${subject.username}@coinos.io`} /> - {:else} - <title>coinos</title> - {/if} - - {#if subject?.profile} - <meta name="og:image" content={`/api/public/${subject.username}-profile.webp`} /> - {:else} - <meta property="og:image" content="/icons/logo.svg" /> - {/if} + <title>coinos</title> + <meta property="og:image" content="/icons/logo.svg" /> </svelte:head> -<SvelteToast options={{ reversed: true, intro: { y: 192 } }} /> - -{#if lost} - <div class="fixed bottom-12 right-12 text-red-600 bg-white z-50 px-4 py-2 rounded-full border"> - Lost connection to server, try refreshing - </div> -{/if} - -<main data-sveltekit-prefetch> - <slot /> -</main> +<slot /> <style global> :root { |
