diff options
| author | Fuwn <[email protected]> | 2026-03-01 16:20:51 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-03-01 16:21:02 -0800 |
| commit | eae5d24d9e79e59a19d4721caaeaa0ca650ecb33 (patch) | |
| tree | 1b685bb248e051dfa26d2bfdebe6689402dd93c5 /src/lib/Utility/notifications.ts | |
| parent | chore(tooling): remove legacy eslint and prettier (diff) | |
| download | due.moe-eae5d24d9e79e59a19d4721caaeaa0ca650ecb33.tar.xz due.moe-eae5d24d9e79e59a19d4721caaeaa0ca650ecb33.zip | |
chore(biome): drop formatter style overrides
Diffstat (limited to 'src/lib/Utility/notifications.ts')
| -rw-r--r-- | src/lib/Utility/notifications.ts | 99 |
1 files changed, 53 insertions, 46 deletions
diff --git a/src/lib/Utility/notifications.ts b/src/lib/Utility/notifications.ts index 92f1f1f9..8ed44629 100644 --- a/src/lib/Utility/notifications.ts +++ b/src/lib/Utility/notifications.ts @@ -1,57 +1,64 @@ -import { env } from '$env/dynamic/public'; +import { env } from "$env/dynamic/public"; import { - isNotificationQueued, - notifications, - updateLastNotificationID -} from '$lib/Data/AniList/notifications'; -import { database } from '$lib/Database/IDB/user'; -import { getFingerprint } from './fingerprint'; -import root from './root'; + isNotificationQueued, + notifications, + updateLastNotificationID, +} from "$lib/Data/AniList/notifications"; +import { database } from "$lib/Database/IDB/user"; +import { getFingerprint } from "./fingerprint"; +import root from "./root"; export const requestNotifications = async () => { - if ('Notification' in window && navigator.serviceWorker) { - const registration = await navigator.serviceWorker.getRegistration(); - - if (registration) { - try { - const pushSubscription = await registration.pushManager.subscribe({ - userVisibleOnly: true, - applicationServerKey: env.PUBLIC_VAPID_PUBLIC_KEY - }); - - await fetch(root(`/api/notifications/subscribe?p=${getFingerprint()}`), { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(pushSubscription) - }); - } catch { - await fetch(`/api/notifications/unsubscribe?p=${getFingerprint()}`, { - method: 'POST' - }); - await updateLocalNotifications(); - setInterval(async () => await updateLocalNotifications(), 1000 * 60); - } - } - } + if ("Notification" in window && navigator.serviceWorker) { + const registration = await navigator.serviceWorker.getRegistration(); + + if (registration) { + try { + const pushSubscription = await registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: env.PUBLIC_VAPID_PUBLIC_KEY, + }); + + await fetch( + root(`/api/notifications/subscribe?p=${getFingerprint()}`), + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(pushSubscription), + }, + ); + } catch { + await fetch(`/api/notifications/unsubscribe?p=${getFingerprint()}`, { + method: "POST", + }); + await updateLocalNotifications(); + setInterval(async () => await updateLocalNotifications(), 1000 * 60); + } + } + } }; const updateLocalNotifications = async () => { - const user = (await database.users.toArray()).at(0); + const user = (await database.users.toArray()).at(0); - if (!user) return; + if (!user) return; - const recentNotifications = await notifications(user.user.accessToken); + const recentNotifications = await notifications(user.user.accessToken); - if ((await window.Notification.requestPermission()) === 'granted') - if (recentNotifications && isNotificationQueued(recentNotifications, user.lastNotificationID)) { - await updateLastNotificationID(user.id, recentNotifications); + if ((await window.Notification.requestPermission()) === "granted") + if ( + recentNotifications && + isNotificationQueued(recentNotifications, user.lastNotificationID) + ) { + await updateLastNotificationID(user.id, recentNotifications); - new Notification('due.moe', { - body: `${recentNotifications[0].user.name}${recentNotifications[0].context}`, - icon: recentNotifications[0].user.avatar.large || '/favicon-196x196.png', - tag: 'notification-1' - }); - } + new Notification("due.moe", { + body: `${recentNotifications[0].user.name}${recentNotifications[0].context}`, + icon: + recentNotifications[0].user.avatar.large || "/favicon-196x196.png", + tag: "notification-1", + }); + } }; |