summaryrefslogtreecommitdiff
path: root/ui/lib/components/NotificationSettings.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'ui/lib/components/NotificationSettings.svelte')
-rw-r--r--ui/lib/components/NotificationSettings.svelte35
1 files changed, 19 insertions, 16 deletions
diff --git a/ui/lib/components/NotificationSettings.svelte b/ui/lib/components/NotificationSettings.svelte
index 81c3708..8bc9d8b 100644
--- a/ui/lib/components/NotificationSettings.svelte
+++ b/ui/lib/components/NotificationSettings.svelte
@@ -1,5 +1,6 @@
<script>
import { onMount } from "svelte";
+ import * as api from '$lib/apiServer.js';
import Toggle from '$lib/components/Toggle.svelte';
let subscriptionJson = $state(null);
@@ -22,11 +23,7 @@
p256dh: subJson.keys.p256dh,
auth: subJson.keys.auth,
};
- return fetch("/api/push", {
- method: "post",
- headers: { "Content-type": "application/json" },
- body: JSON.stringify(subscriptionJson),
- });
+ apiServer.createPushSubscription(subscriptionJson);
});
}
@@ -38,11 +35,7 @@
const { endpoint } = subscription.toJSON();
return subscription.unsubscribe()
.then(() => {
- fetch("/api/push", {
- method: "delete",
- headers: { "Content-type": "application/json" },
- body: JSON.stringify({ endpoint }),
- });
+ apiServer.deletePushSubscription({ endpoint });
subscriptionJson = null;
});
});
@@ -56,6 +49,10 @@
}
}
+ function testNotifications() {
+ api.notifyMe();
+ }
+
onMount(() => {
navigator.serviceWorker.ready.then((registration) => {
return registration.pushManager.getSubscription();
@@ -67,25 +64,31 @@
});
</script>
-<h2>Enable notifications</h2>
+<h2>Notify me here</h2>
<p>
{#if subscriptionJson === null}
- Notifications are currently disabled.
+ We won't notify you here.
{:else}
- Notifications are currently enabled.
+ We will notify you here.
{/if}
</p>
-<button class="btn" onclick="{toggleSub}">
+<button class="btn" onclick={toggleSub}>
{#if subscriptionJson === null}
- Enable notifications
+ Notify me!
{:else}
- Disable notifications
+ Stop notifying me!
{/if}
</button>
+<button class="btn" onclick={testNotifications}>
+ Test notifications
+</button>
+
<h2>Notify me when:</h2>
+<p>These are currently unimplemented.</p>
+
<Toggle
name="channel_created"
text="A new channel is created"