18 lines
1.0 KiB
TypeScript
18 lines
1.0 KiB
TypeScript
"use client";
|
|
|
|
export async function unsubscribeCommissionPush() {
|
|
sessionStorage.removeItem("commission-push-synced-customer");
|
|
sessionStorage.removeItem("commission-push-synced-admin");
|
|
for (const key of Object.keys(sessionStorage)) if (key.startsWith("comment-push-synced-") || key.startsWith("site-push-synced-")) sessionStorage.removeItem(key);
|
|
if (!("serviceWorker" in navigator)) return;
|
|
const registration = await navigator.serviceWorker.getRegistration("/");
|
|
const subscription = await registration?.pushManager.getSubscription();
|
|
if (!subscription) return;
|
|
await fetch("/api/commission/push-subscription", { method: "DELETE",
|
|
headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ endpoint: subscription.endpoint }) }).catch(() => undefined);
|
|
await fetch("/api/comments/push-subscription", { method: "DELETE", headers: { "Content-Type": "application/json" },
|
|
body: JSON.stringify({ endpoint: subscription.endpoint }) }).catch(() => undefined);
|
|
await subscription.unsubscribe();
|
|
}
|