diff options
| author | Adam Soltys <[email protected]> | 2024-10-20 23:32:09 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-20 23:32:09 -0700 |
| commit | 9d72c28e477ab55a61767b1ddf66d74a894958ed (patch) | |
| tree | ac14d89d55862caa2440f6b867b55c7538960fa3 /src | |
| parent | de6c1ad727379c5ebe8550124ea9313979124953 (diff) | |
| download | coinos-ui-9d72c28e477ab55a61767b1ddf66d74a894958ed.tar.gz coinos-ui-9d72c28e477ab55a61767b1ddf66d74a894958ed.zip | |
get subscriptions
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/settings/[...tab]/+page.server.ts | 50 | ||||
| -rw-r--r-- | src/routes/(app)/settings/[...tab]/+page.svelte | 6 | ||||
| -rw-r--r-- | src/routes/(app)/settings/[...tab]/_pos.svelte | 14 |
3 files changed, 35 insertions, 35 deletions
diff --git a/src/routes/(app)/settings/[...tab]/+page.server.ts b/src/routes/(app)/settings/[...tab]/+page.server.ts index 7c1542c0..b85b23e8 100644 --- a/src/routes/(app)/settings/[...tab]/+page.server.ts +++ b/src/routes/(app)/settings/[...tab]/+page.server.ts @@ -1,35 +1,37 @@ +import { auth, fd, get, post } from "$lib/utils"; import { fail, redirect } from "@sveltejs/kit"; -import { fd, auth, get, post } from "$lib/utils"; -export function load({ cookies, params, url }) { - if (url.pathname.endsWith("settings")) - redirect(307, url.pathname + "/account"); - params.cookies = cookies.getAll(); - return { cookies: cookies.getAll(), tab: params.tab }; +export async function load({ cookies, params, url }) { + if (url.pathname.endsWith("settings")) + redirect(307, `${url.pathname}/account`); + params.cookies = cookies.getAll(); + const subscriptions = await get("/subscriptions", auth(cookies)); + console.log("subs", subscriptions); + return { cookies: cookies.getAll(), subscriptions, tab: params.tab }; } export const actions = { - default: async ({ cookies, request }) => { - let form = await fd(request); + default: async ({ cookies, request }) => { + const form = await fd(request); - if (form.tab === "pos") { - form.notify = form.notify === "on"; - form.push = form.push === "on"; - form.nip5 = form.nip5 === "on"; - form.prompt = form.prompt === "on"; - form.autowithdraw = form.autowithdraw === "on"; - } + if (form.tab === "pos") { + form.notify = form.notify === "on"; + form.push = form.push === "on"; + form.nip5 = form.nip5 === "on"; + form.prompt = form.prompt === "on"; + form.autowithdraw = form.autowithdraw === "on"; + } - let user = { ...(await get("/me", auth(cookies))), ...form }; + let user = { ...(await get("/me", auth(cookies))), ...form }; - try { - ({ user } = await post(`/user`, user, auth(cookies))); - } catch (e: any) { - return fail(400, { message: e.message }); - } + try { + ({ user } = await post("/user", user, auth(cookies))); + } catch (e: any) { + return fail(400, { message: e.message }); + } - if (user.language) cookies.set("lang", user.language, { path: "/" }); + if (user.language) cookies.set("lang", user.language, { path: "/" }); - return { user, success: true }; - }, + return { user, success: true }; + }, }; diff --git a/src/routes/(app)/settings/[...tab]/+page.svelte b/src/routes/(app)/settings/[...tab]/+page.svelte index 7ef1653d..0a3a6ddf 100644 --- a/src/routes/(app)/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/settings/[...tab]/+page.svelte @@ -28,12 +28,12 @@ let submit; let formElement; - let { user, token, rates, tab, cookies } = data; + let { user, token, rates, tab, cookies, subscriptions } = data; let prev; $: update(data); let update = () => { - ({ user, token, rates, tab } = data); + ({ user, token, rates, tab, subscriptions } = data); prev = { ...user }; }; @@ -229,7 +229,7 @@ </div> </div> - <svelte:component this={comp} {user} {rates} {submit} /> + <svelte:component this={comp} {user} {rates} {submit} {subscriptions} /> </div> <div diff --git a/src/routes/(app)/settings/[...tab]/_pos.svelte b/src/routes/(app)/settings/[...tab]/_pos.svelte index 7ea76c53..37be6fe7 100644 --- a/src/routes/(app)/settings/[...tab]/_pos.svelte +++ b/src/routes/(app)/settings/[...tab]/_pos.svelte @@ -10,7 +10,7 @@ import { page } from "$app/stores"; import { PUBLIC_VAPID_PUBKEY } from "$env/static/public"; - export let user, rates, submit; + export let user, rates, submit, subscriptions; let { currency } = user; let rate = rates[currency]; @@ -41,7 +41,7 @@ if (!user.reserve) user.reserve = 100000; let reserveEl, thresholdEl; - let push, pm; + let push, pm, subscription; onMount(async () => { if (!browser) return; @@ -55,19 +55,17 @@ applicationServerKey: PUBLIC_VAPID_PUBKEY, }); - push = permission === "granted"; + if (permission === "granted") { + subscription = await pm.getSubscription(); + if (subscriptions.includes(JSON.stringify(subscription))) push = true; + } }); let permission; $: updateNotifications(push); let updateNotifications = async (push) => { - let subscription; if (!browser || !pm) return (push = false); - if (permission === "granted") { - subscription = await pm.getSubscription(); - } - if (subscription && !push) { return post("/subscription/delete", { subscription }); } |
