import { requestApi } from '../src/utils.ts' export default function RegisterServiceWorker() { if ('serviceWorker' in navigator) { import('./StartServiceWorker.tsx').then(async (mod) => { const href = mod.default() const registration = await navigator.serviceWorker.register(href, { scope: '/', type: 'module', }) // Notification.requestPermission().then((permission) => { // if (permission !== 'granted') return // registration.showNotification('Notification permission granted', { // body: 'Notification is ok.', // }) // }) const subscription = await (async () => { const currentSubscription = await registration.pushManager .getSubscription() if (currentSubscription) return currentSubscription const applicationServerKey = await requestApi( 'webpush/vapid', 'GET', ) return await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey, }) })() await requestApi('webpush/subscription', 'POST', subscription) }) } return <> }