aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-07-25 00:13:29 -0700
committerFuwn <[email protected]>2024-07-25 00:13:29 -0700
commit3375311c1b92f615940412bb89ce81f644753996 (patch)
tree7c8143bc368f64481246d91a329606bb876f7682 /src/lib
parentfix(Settings): hint wording (diff)
downloaddue.moe-3375311c1b92f615940412bb89ce81f644753996.tar.xz
due.moe-3375311c1b92f615940412bb89ce81f644753996.zip
feat(notifications): allow unsubscribe
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/Database/userNotifications.ts3
-rw-r--r--src/lib/Settings/Categories/Display.svelte9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/Database/userNotifications.ts b/src/lib/Database/userNotifications.ts
index c61c2aa7..6516b813 100644
--- a/src/lib/Database/userNotifications.ts
+++ b/src/lib/Database/userNotifications.ts
@@ -18,6 +18,9 @@ export const getUserSubscriptions = async () => {
return data as UserNotifications[];
};
+export const deleteUserSubscription = async (userId: number) =>
+ await supabase.from('user_notifications').delete().eq('user_id', userId);
+
export const setUserSubscription = async (userId: number, subscription: JSON) =>
await supabase.from('user_notifications').upsert(
{
diff --git a/src/lib/Settings/Categories/Display.svelte b/src/lib/Settings/Categories/Display.svelte
index dbec2c04..45f9a585 100644
--- a/src/lib/Settings/Categories/Display.svelte
+++ b/src/lib/Settings/Categories/Display.svelte
@@ -5,6 +5,7 @@
import root from '$lib/Utility/root';
import locale from '$stores/locale';
import { browser } from '$app/environment';
+ import { requestNotifications } from '$lib/Utility/notifications';
const onHelperChange = () => {
const mai = document.getElementById('mai') as HTMLImageElement;
@@ -190,6 +191,14 @@
setting="displayAniListNotifications"
text={$locale().settings.display.categories.motionAndAccessibility.fields
.enableAniListNotifications}
+ onChange={() => {
+ console.log($settings.displayAniListNotifications);
+ if ($settings.displayAniListNotifications) requestNotifications().then();
+ else
+ fetch('/api/notifications/unsubscribe', {
+ method: 'POST'
+ }).then();
+ }}
>
<SettingHint lineBreak>
Periodically check for and send recent AniList notifications as native platform notifications