aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-10-20 23:32:09 -0700
committerAdam Soltys <[email protected]>2024-10-20 23:32:09 -0700
commit9d72c28e477ab55a61767b1ddf66d74a894958ed (patch)
treeac14d89d55862caa2440f6b867b55c7538960fa3
parentde6c1ad727379c5ebe8550124ea9313979124953 (diff)
downloadcoinos-ui-9d72c28e477ab55a61767b1ddf66d74a894958ed.tar.gz
coinos-ui-9d72c28e477ab55a61767b1ddf66d74a894958ed.zip
get subscriptions
-rw-r--r--src/routes/(app)/settings/[...tab]/+page.server.ts50
-rw-r--r--src/routes/(app)/settings/[...tab]/+page.svelte6
-rw-r--r--src/routes/(app)/settings/[...tab]/_pos.svelte14
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 });
}