From 002cd9134d2e23bec34f838f6d6fefba41f2d530 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 18 Oct 2024 09:08:07 -0700 Subject: biome format --- src/routes/(app)/+layout.svelte | 6 +- .../(app)/[username]/(profile)/+layout.server.ts | 4 +- .../(app)/[username]/(profile)/+layout.svelte | 18 +++--- .../[username]/(profile)/followers/+page.svelte | 8 ++- .../[username]/(profile)/follows/+page.svelte | 6 +- src/routes/(app)/[username]/+layout.server.ts | 2 +- src/routes/(app)/account/[id]/+page.server.ts | 3 +- src/routes/(app)/account/[id]/+page.svelte | 4 +- src/routes/(app)/account/pass/+page.svelte | 4 +- src/routes/(app)/account/savings/+page.svelte | 4 +- src/routes/(app)/account/setup/+page.svelte | 3 +- src/routes/(app)/admin/+page.server.ts | 2 +- .../(app)/ecash/[id]/[...version]/+layout.svelte | 4 +- .../ecash/[id]/[...version]/swap/+page.server.ts | 2 +- .../ecash/[id]/[...version]/swap/+page.svelte | 4 +- src/routes/(app)/invoice/+page.server.ts | 2 +- src/routes/(app)/invoice/+server.ts | 6 +- src/routes/(app)/invoice/[id]/+page.svelte | 2 +- src/routes/(app)/invoice/[id]/tip/+page.server.ts | 7 +-- src/routes/(app)/ln/[lnurl]/+page.server.ts | 5 +- src/routes/(app)/messages/+page.server.ts | 6 +- .../(app)/messages/[recipient]/+page.server.ts | 3 +- src/routes/(app)/messages/[recipient]/+page.svelte | 6 +- src/routes/(app)/otpsecret/+server.ts | 2 +- .../pay/[username]/[...amount]/+page.server.ts | 4 +- src/routes/(app)/payments/[...page]/+page.svelte | 2 +- src/routes/(app)/qr/[text]/+page.svelte | 16 ++--- .../(app)/receive/[...token]/+page.server.ts | 6 +- src/routes/(app)/send/[...text]/+page.server.ts | 2 +- src/routes/(app)/send/[...text]/+page.svelte | 3 +- .../[amount]/[...feeRate]/+page.server.ts | 2 +- .../(app)/send/lightning/[payreq]/+page.svelte | 16 ++--- src/routes/(app)/sent/[id]/+page.server.ts | 2 +- src/routes/(app)/sent/[id]/+page.svelte | 5 +- src/routes/(app)/settings/[...tab]/+page.svelte | 8 +-- src/routes/(app)/settings/[...tab]/_pos.svelte | 44 +++++++++++++- src/routes/(app)/subscription/+server.ts | 11 ++++ src/routes/(static)/+layout.server.ts | 4 +- src/routes/(static)/login/+page.server.ts | 6 +- src/routes/(static)/login/+page.svelte | 23 ++++---- src/routes/(static)/privacy/+page.svelte | 14 +++-- src/routes/(static)/register/+page.server.ts | 2 +- src/routes/(static)/register/+page.svelte | 2 +- src/routes/(static)/support/+page.svelte | 9 +-- src/routes/+layout.server.ts | 68 +++++++++++----------- src/routes/+layout.ts | 12 ++-- src/routes/+page.server.ts | 4 +- src/routes/map/+page.svelte | 3 +- 48 files changed, 224 insertions(+), 157 deletions(-) create mode 100644 src/routes/(app)/subscription/+server.ts (limited to 'src/routes') diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index db14b046..d8519a1f 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -19,7 +19,7 @@ import Password from "$comp/Password.svelte"; import { getCookie, warning, protectedRoutes } from "$lib/utils"; import { t, locale, loading } from "$lib/translations"; - import { goto, onNavigate } from "$app/navigation"; + import { goto, afterNavigate, preloadData } from "$app/navigation"; export let data; @@ -30,6 +30,10 @@ ({ rate, user, subject, token, rates } = data); }; + afterNavigate(() => { + preloadData(`/${user.username}/receive`); + }); + onMount(async () => { if (browser) { checkSocket(); diff --git a/src/routes/(app)/[username]/(profile)/+layout.server.ts b/src/routes/(app)/[username]/(profile)/+layout.server.ts index 73a24397..4592b81e 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.server.ts +++ b/src/routes/(app)/[username]/(profile)/+layout.server.ts @@ -8,7 +8,9 @@ export async function load({ depends, parent }) { let { follows, followers } = await get(`/${subject.pubkey}/count`); let followList = new Promise((r) => r([])); if (user) - followList = get(`/${user.pubkey}/follows?pubkeysOnly=true`).catch(() => []); + followList = get(`/${user.pubkey}/follows?pubkeysOnly=true`).catch( + () => [], + ); return { follows, followers, followList }; } diff --git a/src/routes/(app)/[username]/(profile)/+layout.svelte b/src/routes/(app)/[username]/(profile)/+layout.svelte index d48fa279..5ad30f46 100644 --- a/src/routes/(app)/[username]/(profile)/+layout.svelte +++ b/src/routes/(app)/[username]/(profile)/+layout.svelte @@ -54,7 +54,7 @@ let follow = async () => { list = [...list, subject.pubkey]; let tags = await get( - `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true` + `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true`, ); tags.push(["p", subject.pubkey]); await update(tags); @@ -64,15 +64,15 @@ let unfollow = async () => { list.splice( list.findIndex((t) => t[1] === subject.pubkey), - 1 + 1, ); list = list; let tags = await get( - `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true` + `/api/${user.pubkey}/follows?pubkeysOnly=true&nocache=true`, ); tags.splice( tags.findIndex((t) => t[1] === subject.pubkey), - 1 + 1, ); await update(tags); }; @@ -151,13 +151,17 @@
- {si(follows)} {$t("user.following")} {si(followers)} {$t("user.followers")} @@ -199,7 +203,7 @@ > diff --git a/src/routes/(app)/[username]/(profile)/followers/+page.svelte b/src/routes/(app)/[username]/(profile)/followers/+page.svelte index 19e4a9aa..c0080990 100644 --- a/src/routes/(app)/[username]/(profile)/followers/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/followers/+page.svelte @@ -14,11 +14,15 @@ {#await followers} -
Loading followers...
+
Loading followers...
{:then followers} {#if followers.length} -
+
- +
diff --git a/src/routes/(app)/[username]/+layout.server.ts b/src/routes/(app)/[username]/+layout.server.ts index 1b95bdd0..c7a5c44b 100644 --- a/src/routes/(app)/[username]/+layout.server.ts +++ b/src/routes/(app)/[username]/+layout.server.ts @@ -9,7 +9,7 @@ export let load = async ({ }) => { depends("app:user"); - try { + try { let subject = await get(`/users/${username}`); let { user } = await parent(); diff --git a/src/routes/(app)/account/[id]/+page.server.ts b/src/routes/(app)/account/[id]/+page.server.ts index 35b5517d..e521f15b 100644 --- a/src/routes/(app)/account/[id]/+page.server.ts +++ b/src/routes/(app)/account/[id]/+page.server.ts @@ -1,11 +1,10 @@ import { error, redirect } from "@sveltejs/kit"; import { auth, get, post, fd } from "$lib/utils"; - export let load = async ({ cookies, params }) => { let account = await get(`/account/${params.id}`, auth(cookies)); return { account }; -} +}; export const actions = { default: async ({ cookies, params, request }) => { diff --git a/src/routes/(app)/account/[id]/+page.svelte b/src/routes/(app)/account/[id]/+page.svelte index 3f7bb900..63fd7a42 100644 --- a/src/routes/(app)/account/[id]/+page.svelte +++ b/src/routes/(app)/account/[id]/+page.svelte @@ -37,10 +37,10 @@ } }; -let nwc; + let nwc; let revealNwc = () => (nwc = `nostr+walletconnect://${pk}?relay=${encodeURIComponent( - relay + relay, )}&secret=${user.nwc}`); diff --git a/src/routes/(app)/account/pass/+page.svelte b/src/routes/(app)/account/pass/+page.svelte index c063d647..5becf337 100644 --- a/src/routes/(app)/account/pass/+page.svelte +++ b/src/routes/(app)/account/pass/+page.svelte @@ -39,12 +39,12 @@ try { let seed = await encrypt( mnemonicToEntropy($mnemonic, wordlist), - password + password, ); let master = HDKey.fromMasterSeed( await mnemonicToSeed($mnemonic, password), - versions + versions, ); let child = master.derive("m/84'/0'/0'"); diff --git a/src/routes/(app)/account/savings/+page.svelte b/src/routes/(app)/account/savings/+page.svelte index f9c6305c..8cc24aa2 100644 --- a/src/routes/(app)/account/savings/+page.svelte +++ b/src/routes/(app)/account/savings/+page.svelte @@ -4,7 +4,9 @@
-

{$t("accounts.accountSetup")}

+

+ {$t("accounts.accountSetup")} +

diff --git a/src/routes/(app)/account/setup/+page.svelte b/src/routes/(app)/account/setup/+page.svelte index f5a5ac09..24b6e248 100644 --- a/src/routes/(app)/account/setup/+page.svelte +++ b/src/routes/(app)/account/setup/+page.svelte @@ -12,8 +12,7 @@
Cash
- Your balance is held with a custodian. Payments are fast and - free. + Your balance is held with a custodian. Payments are fast and free.
diff --git a/src/routes/(app)/admin/+page.server.ts b/src/routes/(app)/admin/+page.server.ts index 96a1cd78..40c56c77 100644 --- a/src/routes/(app)/admin/+page.server.ts +++ b/src/routes/(app)/admin/+page.server.ts @@ -6,7 +6,7 @@ export async function load({ cookies, parent }) { if (!user) redirect(307, "/login"); let users = (await get("/users", auth(cookies))).sort( - (a, b) => b.balance - a.balance + (a, b) => b.balance - a.balance, ); return { users }; } diff --git a/src/routes/(app)/ecash/[id]/[...version]/+layout.svelte b/src/routes/(app)/ecash/[id]/[...version]/+layout.svelte index 89de4b58..f9c80329 100644 --- a/src/routes/(app)/ecash/[id]/[...version]/+layout.svelte +++ b/src/routes/(app)/ecash/[id]/[...version]/+layout.svelte @@ -34,10 +34,10 @@ {/if}
- {$t("payments.from")} {mint} + {$t("payments.from")} + {mint}
- {#if spent > 0}
diff --git a/src/routes/(app)/ecash/[id]/[...version]/swap/+page.server.ts b/src/routes/(app)/ecash/[id]/[...version]/swap/+page.server.ts index c8806bf0..14e4767d 100644 --- a/src/routes/(app)/ecash/[id]/[...version]/swap/+page.server.ts +++ b/src/routes/(app)/ecash/[id]/[...version]/swap/+page.server.ts @@ -1,3 +1,3 @@ - export async function load() { +export async function load() { return { test: 123 }; } diff --git a/src/routes/(app)/ecash/[id]/[...version]/swap/+page.svelte b/src/routes/(app)/ecash/[id]/[...version]/swap/+page.svelte index 3df9504d..ee22cea2 100644 --- a/src/routes/(app)/ecash/[id]/[...version]/swap/+page.svelte +++ b/src/routes/(app)/ecash/[id]/[...version]/swap/+page.svelte @@ -2,4 +2,6 @@ export let data; -
Support for swapping in cash from other mints is coming soon
+
+ Support for swapping in cash from other mints is coming soon +
diff --git a/src/routes/(app)/invoice/+page.server.ts b/src/routes/(app)/invoice/+page.server.ts index fa644eb9..5f3c38d3 100644 --- a/src/routes/(app)/invoice/+page.server.ts +++ b/src/routes/(app)/invoice/+page.server.ts @@ -5,7 +5,7 @@ import type { Invoice } from "$lib/types"; export let load = async ({ cookies, parent }) => { let aid = cookies.get("aid"); let { subject, user, rates } = await parent(); - if (aid === user.id) redirect(307, `/${user.username}/receive`) + if (aid === user.id) redirect(307, `/${user.username}/receive`); let invoice: Invoice = { aid, diff --git a/src/routes/(app)/invoice/+server.ts b/src/routes/(app)/invoice/+server.ts index 5e3d0300..0b5eb04e 100644 --- a/src/routes/(app)/invoice/+server.ts +++ b/src/routes/(app)/invoice/+server.ts @@ -1,7 +1,7 @@ import { auth, post } from "$lib/utils"; import { json } from "@sveltejs/kit"; -export let POST = async ({ cookies: c, request: r }) => { - let j = await r.json(); - return json(await post("/invoice", j, auth(c))); +export const POST = async ({ cookies: c, request: r }) => { + const j = await r.json(); + return json(await post("/invoice", j, auth(c))); }; diff --git a/src/routes/(app)/invoice/[id]/+page.svelte b/src/routes/(app)/invoice/[id]/+page.svelte index 5495e118..1a32b5b4 100644 --- a/src/routes/(app)/invoice/[id]/+page.svelte +++ b/src/routes/(app)/invoice/[id]/+page.svelte @@ -52,7 +52,7 @@ user: { username, currency }, } = invoice); - if (browser && !subbed[id]) + if (browser && !subbed[id]) send("subscribe", invoice) .then(() => (subbed[id] = true)) .catch((e) => { diff --git a/src/routes/(app)/invoice/[id]/tip/+page.server.ts b/src/routes/(app)/invoice/[id]/tip/+page.server.ts index 97f148d1..f5a1b220 100644 --- a/src/routes/(app)/invoice/[id]/tip/+page.server.ts +++ b/src/routes/(app)/invoice/[id]/tip/+page.server.ts @@ -3,12 +3,11 @@ import invoice from "$lib/invoice"; import { redirect } from "@sveltejs/kit"; export async function load({ parent }) { - let rates = await get("/rates"); + let rates = await get("/rates"); let { invoice } = await parent(); - if (!invoice.amount) - redirect(307, `/invoice/${invoice.id}`); + if (!invoice.amount) redirect(307, `/invoice/${invoice.id}`); - return { rates} + return { rates }; } export const actions = { diff --git a/src/routes/(app)/ln/[lnurl]/+page.server.ts b/src/routes/(app)/ln/[lnurl]/+page.server.ts index cae220bf..4ac55e44 100644 --- a/src/routes/(app)/ln/[lnurl]/+page.server.ts +++ b/src/routes/(app)/ln/[lnurl]/+page.server.ts @@ -24,9 +24,8 @@ export const actions = { pay: async ({ fetch, request }) => { let error; - let { callback, amount, minSendable, maxSendable, comment } = await fd( - request - ); + let { callback, amount, minSendable, maxSendable, comment } = + await fd(request); minSendable = Math.round(minSendable / 1000); maxSendable = Math.round(maxSendable / 1000); diff --git a/src/routes/(app)/messages/+page.server.ts b/src/routes/(app)/messages/+page.server.ts index 94659621..a7195b18 100644 --- a/src/routes/(app)/messages/+page.server.ts +++ b/src/routes/(app)/messages/+page.server.ts @@ -10,7 +10,7 @@ interface Note { seen: number; } -export async function load({ params, parent, }) { +export async function load({ params, parent }) { let { user } = await parent(); if (user.username !== params.username) redirect(307, `/${params.username}`); let { since = 0 } = params; @@ -22,7 +22,9 @@ export async function load({ params, parent, }) { let { pubkey } = user; try { messages = await get(`/${pubkey}/${since}/messages`); - messages = messages.sort((a: Message, b: Message) => b.created_at - a.created_at); + messages = messages.sort( + (a: Message, b: Message) => b.created_at - a.created_at, + ); } catch (e) { console.log(`failed to fetch nostr messages`, e); } diff --git a/src/routes/(app)/messages/[recipient]/+page.server.ts b/src/routes/(app)/messages/[recipient]/+page.server.ts index 6be9f6ec..0ff2885e 100644 --- a/src/routes/(app)/messages/[recipient]/+page.server.ts +++ b/src/routes/(app)/messages/[recipient]/+page.server.ts @@ -13,7 +13,8 @@ export async function load({ params, parent }) { messages = messages .filter( - (m: Message) => m.recipient?.id === recipient.id || m.author?.id === recipient.id + (m: Message) => + m.recipient?.id === recipient.id || m.author?.id === recipient.id, ) .sort((a, b) => a.created_at - b.created_at); } catch (e) { diff --git a/src/routes/(app)/messages/[recipient]/+page.svelte b/src/routes/(app)/messages/[recipient]/+page.svelte index 98638389..9b9f6f47 100644 --- a/src/routes/(app)/messages/[recipient]/+page.svelte +++ b/src/routes/(app)/messages/[recipient]/+page.svelte @@ -17,7 +17,7 @@ function fadeScale( node, - { delay = 0, duration = 200, easing = (x) => x, baseScale = 0 } + { delay = 0, duration = 200, easing = (x) => x, baseScale = 0 }, ) { const o = +getComputedStyle(node).opacity; const m = getComputedStyle(node).transform.match(/scale\(([0-9.]+)\)/); @@ -43,8 +43,8 @@ let initialize = async (p) => { await Promise.all( messages.map( - async (event) => (event.message = await decrypt({ event, user })) - ) + async (event) => (event.message = await decrypt({ event, user })), + ), ); messages = messages; diff --git a/src/routes/(app)/otpsecret/+server.ts b/src/routes/(app)/otpsecret/+server.ts index 2539ba27..9102dd51 100644 --- a/src/routes/(app)/otpsecret/+server.ts +++ b/src/routes/(app)/otpsecret/+server.ts @@ -8,7 +8,7 @@ export async function POST({ cookies, request }) { let { username, secret } = await post("/otpsecret", body, auth(cookies)); let uri = `otpauth://totp/coinos:${username}?secret=${secret}&period=30&digits=6&algorithm=SHA1&issuer=coinos`; return new Response( - JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) }) + JSON.stringify({ secret, uri, qr: Qr.drawImg(uri, { size: 600 }) }), ); } catch (e: any) { if (e.message.includes("pin")) throw e; diff --git a/src/routes/(app)/pay/[username]/[...amount]/+page.server.ts b/src/routes/(app)/pay/[username]/[...amount]/+page.server.ts index 93100ff0..61809cf7 100644 --- a/src/routes/(app)/pay/[username]/[...amount]/+page.server.ts +++ b/src/routes/(app)/pay/[username]/[...amount]/+page.server.ts @@ -5,7 +5,7 @@ export async function load({ cookies, params, parent }) { let { username } = params; let { rates, user } = await parent(); - if ((user?.username === username)) error(500, "Cannot send to self"); + if (user?.username === username) error(500, "Cannot send to self"); let subject = await get(`/users/${username}`); let [amount, currency] = params.amount.split("/"); @@ -28,7 +28,7 @@ export async function load({ cookies, params, parent }) { }, user: { username }, }, - auth(cookies) + auth(cookies), ); redirect(307, `/invoice/${id}`); diff --git a/src/routes/(app)/payments/[...page]/+page.svelte b/src/routes/(app)/payments/[...page]/+page.svelte index be2ba3bb..e781409f 100644 --- a/src/routes/(app)/payments/[...page]/+page.svelte +++ b/src/routes/(app)/payments/[...page]/+page.svelte @@ -46,7 +46,7 @@ $: selection = start ? presets.findIndex( - (p) => Math.abs(differenceInDays(new Date(start * 1000), p.start)) < 1 + (p) => Math.abs(differenceInDays(new Date(start * 1000), p.start)) < 1, ) : 0; diff --git a/src/routes/(app)/qr/[text]/+page.svelte b/src/routes/(app)/qr/[text]/+page.svelte index 5469c084..e073b66e 100644 --- a/src/routes/(app)/qr/[text]/+page.svelte +++ b/src/routes/(app)/qr/[text]/+page.svelte @@ -10,13 +10,13 @@
diff --git a/src/routes/(app)/receive/[...token]/+page.server.ts b/src/routes/(app)/receive/[...token]/+page.server.ts index 011ffb00..65888ff4 100644 --- a/src/routes/(app)/receive/[...token]/+page.server.ts +++ b/src/routes/(app)/receive/[...token]/+page.server.ts @@ -1,4 +1,4 @@ -import { fd} from "$lib/utils"; +import { fd } from "$lib/utils"; import { fail, redirect } from "@sveltejs/kit"; import parse from "$lib/parse"; @@ -11,7 +11,7 @@ export async function load({ params, parent, url }) { export const actions = { default: async ({ request, url }) => { let { text } = await fd(request); - await parse(text, url.host ); - return fail(400, { error: "default" }); + await parse(text, url.host); + return fail(400, { error: "default" }); }, }; diff --git a/src/routes/(app)/send/[...text]/+page.server.ts b/src/routes/(app)/send/[...text]/+page.server.ts index 950a2c98..906d6563 100644 --- a/src/routes/(app)/send/[...text]/+page.server.ts +++ b/src/routes/(app)/send/[...text]/+page.server.ts @@ -13,7 +13,7 @@ export async function load({ cookies, params, url }) { export const actions = { default: async ({ request, url }) => { let { text } = await fd(request); - await parse(text, url.host); + await parse(text, url.host); return fail(400, { error: "default" }); }, }; diff --git a/src/routes/(app)/send/[...text]/+page.svelte b/src/routes/(app)/send/[...text]/+page.svelte index 2fbd8d59..d27df639 100644 --- a/src/routes/(app)/send/[...text]/+page.svelte +++ b/src/routes/(app)/send/[...text]/+page.svelte @@ -18,7 +18,8 @@ let el, text, pasted, w; - let keypress = (e) => e.key === "Enter" ? (e.preventDefault() || el.click()) : (pasted = false); + let keypress = (e) => + e.key === "Enter" ? e.preventDefault() || el.click() : (pasted = false); let paste = async () => { text = await navigator.clipboard.readText(); diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts index e46a9f56..77fd8a4d 100644 --- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts +++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts @@ -8,7 +8,7 @@ export async function load({ params: { address, amount, feeRate }, cookies }) { let { fee, fees, inputs, ourfee, hex } = await post( "/bitcoin/fee", { address, amount, feeRate, aid }, - auth(cookies) + auth(cookies), ); let account = await get(`/account/${aid}`, auth(cookies)); diff --git a/src/routes/(app)/send/lightning/[payreq]/+page.svelte b/src/routes/(app)/send/lightning/[payreq]/+page.svelte index 01f41d34..132874a0 100644 --- a/src/routes/(app)/send/lightning/[payreq]/+page.svelte +++ b/src/routes/(app)/send/lightning/[payreq]/+page.svelte @@ -36,14 +36,14 @@ amount < 100 ? amount * 5 : amount < 1000 - ? amount - : amount < 10000 - ? amount * 0.5 - : amount < 100000 - ? amount * 0.1 - : amount < 1000000 - ? amount * 0.05 - : amount * 0.01 + ? amount + : amount < 10000 + ? amount * 0.5 + : amount < 100000 + ? amount * 0.1 + : amount < 1000000 + ? amount * 0.05 + : amount * 0.01, ); let loading; diff --git a/src/routes/(app)/sent/[id]/+page.server.ts b/src/routes/(app)/sent/[id]/+page.server.ts index 38d95e4e..80b1d428 100644 --- a/src/routes/(app)/sent/[id]/+page.server.ts +++ b/src/routes/(app)/sent/[id]/+page.server.ts @@ -2,6 +2,6 @@ import { get, auth } from "$lib/utils"; export let load = async ({ cookies, params }) => { let { id } = params; - let p = await get(`/payments/${id}`, auth(cookies)); + let p = await get(`/payments/${id}`, auth(cookies)); return p; }; diff --git a/src/routes/(app)/sent/[id]/+page.svelte b/src/routes/(app)/sent/[id]/+page.svelte index ce2c8d6e..a71a5360 100644 --- a/src/routes/(app)/sent/[id]/+page.svelte +++ b/src/routes/(app)/sent/[id]/+page.svelte @@ -14,10 +14,7 @@
-
+

{$t("payments.sent")}!

diff --git a/src/routes/(app)/settings/[...tab]/+page.svelte b/src/routes/(app)/settings/[...tab]/+page.svelte index f59806d1..7ef1653d 100644 --- a/src/routes/(app)/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/settings/[...tab]/+page.svelte @@ -87,7 +87,7 @@ try { data.set( "cipher", - await reEncryptEntropy(user, data.get("password")) + await reEncryptEntropy(user, data.get("password")), ); } catch (e) { console.log("Failed to encrypt keys with new password"); @@ -98,7 +98,7 @@ if ($avatar) { try { let { hash } = JSON.parse( - await upload($avatar.file, $avatar.type, $avatar.progress, token) + await upload($avatar.file, $avatar.type, $avatar.progress, token), ); data.set("profile", hash); @@ -115,7 +115,7 @@ if ($banner) { try { let { hash } = JSON.parse( - await upload($banner.file, $banner.type, $banner.progress, token) + await upload($banner.file, $banner.type, $banner.progress, token), ); data.set("banner", hash); @@ -161,7 +161,7 @@ await post( "/api/request", { id: user.id, email: user.email }, - auth(cookies) + auth(cookies), ); warning($t("user.settings.verifying"), false); diff --git a/src/routes/(app)/settings/[...tab]/_pos.svelte b/src/routes/(app)/settings/[...tab]/_pos.svelte index dcfcbe44..7ccaa69f 100644 --- a/src/routes/(app)/settings/[...tab]/_pos.svelte +++ b/src/routes/(app)/settings/[...tab]/_pos.svelte @@ -13,7 +13,7 @@ let { currency } = user; let rate = rates[currency]; - let fiats = Object.keys(rates).sort((a,b) => a.localeCompare(b)); + let fiats = Object.keys(rates).sort((a, b) => a.localeCompare(b)); $: user.language = $locale; let keypress = (e) => e.key === "Enter" && (e.preventDefault() || el.click()); @@ -38,6 +38,36 @@ if (!user.threshold) user.threshold = 1000000; if (!user.reserve) user.reserve = 100000; let reserveEl, thresholdEl; + + let subscription; + $: updateNotifications(user.push); + let updateNotifications = async (push) => { + if (push && navigator.serviceWorker) { + const VAPID_PUBLIC_KEY = + "BEfgMDTeAn1F8ZQUGC6v5iKTD86zYXaa3QVr1E-ylKXC5c24JplcfSAN9PDlXAsVtUd3cU6j4-LsX_TKQzz_yDQ"; + + const swRegistration = await navigator.serviceWorker.getRegistration(); + const pushManager = swRegistration.pushManager; + if (!isPushManagerActive(pushManager)) { + console.log("not active"); + return; + } + subscription = await pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: VAPID_PUBLIC_KEY, + }); + } + }; + + function isPushManagerActive(pushManager) { + if (pushManager) return true; + + if (!window.navigator.standalone) { + console.log("not standalone"); + } + + return false; + }
@@ -72,6 +102,18 @@

+
+
+ {$t("user.settings.pushNotifications")} + +
+

+ {$t("user.settings.pushNotificationsDesc")} +

+
+ +{JSON.stringify(subscription)} +
{$t("user.settings.tipPrompt")} diff --git a/src/routes/(app)/subscription/+server.ts b/src/routes/(app)/subscription/+server.ts new file mode 100644 index 00000000..8ae3f965 --- /dev/null +++ b/src/routes/(app)/subscription/+server.ts @@ -0,0 +1,11 @@ +import { auth, post } from "$lib/utils"; +import { json } from "@sveltejs/kit"; + +export async function POST({ cookies, request }) { + const result = await post( + "/subscription", + await request.json(), + auth(cookies), + ); + return json(result); +} diff --git a/src/routes/(static)/+layout.server.ts b/src/routes/(static)/+layout.server.ts index c26f8d96..56b8efa1 100644 --- a/src/routes/(static)/+layout.server.ts +++ b/src/routes/(static)/+layout.server.ts @@ -1,9 +1,9 @@ -import { get, auth} from "$lib/utils"; +import { get, auth } from "$lib/utils"; export async function load({ cookies }) { let token = cookies.get("token"); - let user; + let user; if (token) { try { user = await get("/me", auth(cookies)); diff --git a/src/routes/(static)/login/+page.server.ts b/src/routes/(static)/login/+page.server.ts index fd7fec8c..6ba7e033 100644 --- a/src/routes/(static)/login/+page.server.ts +++ b/src/routes/(static)/login/+page.server.ts @@ -15,11 +15,7 @@ export const actions = { if (loginRedirect === "undefined") loginRedirect = undefined; try { - await login( - user, - cookies, - request.headers.get("cf-connecting-ip") - ); + await login(user, cookies, request.headers.get("cf-connecting-ip")); } catch (e: any) { return fail(400, { error: "Login failed", message: e.message, ...form }); } diff --git a/src/routes/(static)/login/+page.svelte b/src/routes/(static)/login/+page.svelte index df7db5e6..efaa84b8 100644 --- a/src/routes/(static)/login/+page.svelte +++ b/src/routes/(static)/login/+page.svelte @@ -76,7 +76,9 @@ {/if} -
+ diff --git a/src/routes/(static)/privacy/+page.svelte b/src/routes/(static)/privacy/+page.svelte index bf8ba78e..7b21a5be 100644 --- a/src/routes/(static)/privacy/+page.svelte +++ b/src/routes/(static)/privacy/+page.svelte @@ -2,11 +2,15 @@
Privacy Policy
- The only personal information we require to create an account is a username and password. Some users may provide an email address for notification or password reset purposes. We will not share your email with anyone or use it for anything other than the purposes stated. -
- -
+ The only personal information we require to create an account is a username + and password. Some users may provide an email address for notification or + password reset purposes. We will not share your email with anyone or use it + for anything other than the purposes stated. +
- We keep records of payment history associated to accounts and may be obligated to share our records with financial authorities. You may request that your account be deleted by visiting https://coinos.io/removal +
+ We keep records of payment history associated to accounts and may be + obligated to share our records with financial authorities. You may request + that your account be deleted by visiting https://coinos.io/removal
diff --git a/src/routes/(static)/register/+page.server.ts b/src/routes/(static)/register/+page.server.ts index 731530c4..0b965507 100644 --- a/src/routes/(static)/register/+page.server.ts +++ b/src/routes/(static)/register/+page.server.ts @@ -21,7 +21,7 @@ export const actions = { let error; if (loginRedirect === "undefined") loginRedirect = undefined; - + try { await post("/register", { user }, { "cf-connecting-ip": ip }); } catch (e: any) { diff --git a/src/routes/(static)/register/+page.svelte b/src/routes/(static)/register/+page.svelte index 3491bd5d..1749bd16 100644 --- a/src/routes/(static)/register/+page.svelte +++ b/src/routes/(static)/register/+page.svelte @@ -98,7 +98,7 @@ if ($avatar) { try { let { hash } = JSON.parse( - await upload($avatar.file, $avatar.type, $avatar.progress, token) + await upload($avatar.file, $avatar.type, $avatar.progress, token), ); data.set("profile", hash); diff --git a/src/routes/(static)/support/+page.svelte b/src/routes/(static)/support/+page.svelte index 6b32124e..062f552b 100644 --- a/src/routes/(static)/support/+page.svelte +++ b/src/routes/(static)/support/+page.svelte @@ -24,7 +24,7 @@ grecaptcha.execute(recaptchaSiteKey, { action: "submit" }).then((token) => post("/support", { username: user?.username, email, message, token }) .then(() => (sent = true)) - .catch(() => fail("problem submitting")) + .catch(() => fail("problem submitting")), ); }); }; @@ -97,12 +97,7 @@ - +
diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index c21e8525..605c0134 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -1,46 +1,46 @@ import { auth, get } from "$lib/utils"; import { - locales, - loadTranslations, - translations, - defaultLocale, + locales, + loadTranslations, + translations, + defaultLocale, } from "$lib/translations/index"; export let load = async ({ cookies, request, url }) => { - let { host, pathname } = url; - let user; - let token = cookies.get("token"); - if (token) { - try { - user = await get("/me", auth(cookies)); - } catch (e) {} - } + let { host, pathname } = url; + let user; + let token = cookies.get("token"); + if (token) { + try { + user = await get("/me", auth(cookies)); + } catch (e) {} + } - // Try to get the locale from cookie - let locale = user?.language || (cookies.get("lang") || "").toLowerCase(); + // Try to get the locale from cookie + let locale = user?.language || (cookies.get("lang") || "").toLowerCase(); - // Get user preferred locale - if (!locale) { - locale = `${`${request.headers.get("accept-language")}`.match( - /[a-zA-Z]+?(?=-|_|,|;)/ - )}`.toLowerCase(); - } + // Get user preferred locale + if (!locale) { + locale = `${`${request.headers.get("accept-language")}`.match( + /[a-zA-Z]+?(?=-|_|,|;)/, + )}`.toLowerCase(); + } - // Get defined locales - let supportedLocales = locales.get().map((l) => l.toLowerCase()); + // Get defined locales + let supportedLocales = locales.get().map((l) => l.toLowerCase()); - // Use default locale if current locale is not supported - if (!supportedLocales.includes(locale)) { - locale = defaultLocale; - } + // Use default locale if current locale is not supported + if (!supportedLocales.includes(locale)) { + locale = defaultLocale; + } - await loadTranslations(locale, pathname); // keep this just before the `return` + await loadTranslations(locale, pathname); // keep this just before the `return` - return { - host, - pathname, - i18n: { locale, route: pathname }, - user, - translations: translations.get(), - }; + return { + host, + pathname, + i18n: { locale, route: pathname }, + user, + translations: translations.get(), + }; }; diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts index d9f713b4..20892e44 100644 --- a/src/routes/+layout.ts +++ b/src/routes/+layout.ts @@ -2,13 +2,13 @@ import { addTranslations, setLocale, setRoute } from "$lib/translations/index"; /** @type {import('@sveltejs/kit').Load} */ export const load = async ({ data }) => { - const { i18n, translations } = data; - const { locale, route } = i18n; + const { i18n, translations } = data; + const { locale, route } = i18n; - addTranslations(translations); + addTranslations(translations); - await setRoute(route); - await setLocale(locale); + await setRoute(route); + await setLocale(locale); - return i18n; + return i18n; }; diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts index 20c3a05b..5679ea61 100644 --- a/src/routes/+page.server.ts +++ b/src/routes/+page.server.ts @@ -1,3 +1,3 @@ -export let load = async () => { - return { faqs: ["cost", "compatibility", "safety", "pos", "bitcoin"] }; +export const load = async () => { + return { faqs: ["cost", "compatibility", "safety", "pos", "bitcoin"] }; }; diff --git a/src/routes/map/+page.svelte b/src/routes/map/+page.svelte index c307826e..2addca54 100644 --- a/src/routes/map/+page.svelte +++ b/src/routes/map/+page.svelte @@ -7,6 +7,5 @@
- +
- -- cgit v1.2.3