From 8a94bbfba322f8011017980e4362d46c4d51bb55 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 24 Jul 2024 21:24:09 -0700 Subject: feat: background notifications --- src/lib/Utility/notifications.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/lib/Utility/notifications.ts (limited to 'src/lib/Utility') diff --git a/src/lib/Utility/notifications.ts b/src/lib/Utility/notifications.ts new file mode 100644 index 00000000..fe174bd6 --- /dev/null +++ b/src/lib/Utility/notifications.ts @@ -0,0 +1,22 @@ +import { env } from '$env/dynamic/public'; +import root from './root'; + +export const requestNotifications = async () => { + if ('Notification' in window && navigator.serviceWorker) + if ((await Notification.requestPermission()) === 'granted') { + const pushSubscription = await ( + await navigator.serviceWorker.ready + ).pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: env.PUBLIC_VAPID_PUBLIC_KEY + }); + + await fetch(root('/api/notifications/subscribe'), { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(pushSubscription) + }); + } +}; -- cgit v1.2.3