diff --git a/resources/js/composables/usePushNotifications.ts b/resources/js/composables/usePushNotifications.ts index b62e9bc..a276fda 100644 --- a/resources/js/composables/usePushNotifications.ts +++ b/resources/js/composables/usePushNotifications.ts @@ -11,10 +11,19 @@ export function usePushNotifications() { const registration = await navigator.serviceWorker.ready; const subscription = await registration.pushManager.subscribe({ userVisibleOnly: true, - applicationServerKey: urlBase64ToUint8Array(import.meta.env.VITE_VAPID_PUBLIC_KEY), + applicationServerKey: urlBase64ToUint8Array( + document.querySelector('meta[name="vapid-public-key"]')?.getAttribute('content') || '', + ), }); - await axios.post('/subscriptions', subscription); + await fetch('/subscriptions', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '', + }, + body: JSON.stringify(subscription), + }); isSubscribed.value = true; } @@ -28,7 +37,14 @@ export function usePushNotifications() { const subscription = await registration.pushManager.getSubscription(); if (subscription) { - await axios.post('/subscriptions/delete', { endpoint: subscription.endpoint }); + await fetch('/subscriptions/delete', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '', + }, + body: JSON.stringify({ endpoint: subscription.endpoint }), + }); await subscription.unsubscribe(); } @@ -40,9 +56,11 @@ export function usePushNotifications() { const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/'); const rawData = window.atob(base64); const outputArray = new Uint8Array(rawData.length); + for (let i = 0; i < rawData.length; ++i) { outputArray[i] = rawData.charCodeAt(i); } + return outputArray; } diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 64cc06b..27de75e 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -3,6 +3,7 @@
+ {{-- Inline script to detect system dark mode preference and apply it immediately --}}