fix:notifications

This commit is contained in:
2025-11-08 13:45:06 +01:00
parent 4d288347ab
commit e27b2498b7

View File

@@ -77,28 +77,31 @@
async function subscribeToPushNotifications(registration: ServiceWorkerRegistration) { async function subscribeToPushNotifications(registration: ServiceWorkerRegistration) {
try { try {
console.log('[NotificationManager] subscribeToPushNotifications called');
subscriptionStatus = 'subscribing'; subscriptionStatus = 'subscribing';
// Get VAPID public key from server // Get VAPID public key from server
console.log('[NotificationManager] Fetching VAPID key...');
const response = await fetch('/api/notifications/subscribe'); const response = await fetch('/api/notifications/subscribe');
if (!response.ok) { if (!response.ok) {
throw new Error('Failed to get VAPID public key'); throw new Error('Failed to get VAPID public key');
} }
const { publicKey } = await response.json(); const { publicKey } = await response.json();
console.log('[NotificationManager] Got VAPID key:', publicKey);
// Check if already subscribed // Check if already subscribed
console.log('[NotificationManager] Checking existing subscription...');
let subscription = await registration.pushManager.getSubscription(); let subscription = await registration.pushManager.getSubscription();
console.log('[NotificationManager] Existing subscription:', subscription);
// If not subscribed, create new subscription // If not subscribed, create new subscription
if (!subscription) { if (!subscription) {
console.log('[NotificationManager] Creating new subscription...');
subscription = await registration.pushManager.subscribe({ subscription = await registration.pushManager.subscribe({
userVisibleOnly: true, userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(publicKey) applicationServerKey: urlBase64ToUint8Array(publicKey)
}); });
console.log('[NotificationManager] Subscription created:', subscription);
} }
// Send subscription to server // Send subscription to server
console.log('[NotificationManager] Sending subscription to server...');
const saveResponse = await fetch('/api/notifications/subscribe', { const saveResponse = await fetch('/api/notifications/subscribe', {
method: 'POST', method: 'POST',
headers: { headers: {
@@ -114,15 +117,16 @@
} }
}) })
}); });
console.log('[NotificationManager] Save response status:', saveResponse.status);
if (!saveResponse.ok) { if (!saveResponse.ok) {
const errorText = await saveResponse.text();
console.error('[NotificationManager] Save failed:', errorText);
throw new Error('Failed to save subscription to server'); throw new Error('Failed to save subscription to server');
} }
subscriptionStatus = 'subscribed'; subscriptionStatus = 'subscribed';
console.log('Successfully subscribed to push notifications'); console.log('[NotificationManager] Successfully subscribed to push notifications!');
} catch (error) { } catch (error) {
console.error('Error subscribing to push notifications:', error); console.error('[NotificationManager] Error subscribing to push notifications:', error);
subscriptionStatus = 'error'; subscriptionStatus = 'error';
errorMessage = error instanceof Error ? error.message : 'Unknown error'; errorMessage = error instanceof Error ? error.message : 'Unknown error';
} }