a
All checks were successful
/ upload (release) Successful in 30s

This commit is contained in:
pavel 2026-02-12 02:12:42 +01:00
commit 0dc8251ec7

View file

@ -847,6 +847,13 @@ async function setupPush() {
const vapidResponse = await fetch(`${API_URL}/notifications/vapid-key`); const vapidResponse = await fetch(`${API_URL}/notifications/vapid-key`);
const { publicKey } = await vapidResponse.json(); const { publicKey } = await vapidResponse.json();
// Always clear existing subscription to ensure we use latest VAPID key
const existingSub = await state.swRegistration.pushManager.getSubscription();
if (existingSub) {
await existingSub.unsubscribe();
console.log('Unsubscribed existing push subscription');
}
const subscription = await state.swRegistration.pushManager.subscribe({ const subscription = await state.swRegistration.pushManager.subscribe({
userVisibleOnly: true, userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(publicKey) applicationServerKey: urlBase64ToUint8Array(publicKey)
@ -870,7 +877,11 @@ async function setupPush() {
} }
function b64(buffer) { function b64(buffer) {
return btoa(String.fromCharCode.apply(null, new Uint8Array(buffer))); const binary = String.fromCharCode.apply(null, new Uint8Array(buffer));
return btoa(binary)
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=/g, '');
} }
function urlBase64ToUint8Array(base64String) { function urlBase64ToUint8Array(base64String) {