aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/socket.js10
-rw-r--r--src/lib/utils.js8
-rw-r--r--src/locales/en.json2
-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.svelte87
-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.svelte75
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 {