// public/service-worker.js

self.addEventListener("push", (event) => {

    const data = event.data.json();

    const options = {
        body: data.body,
        icon: data.icon,
        badge: data.badge,
        data: data.url
    };
    event.waitUntil(self.registration.showNotification(data.title, options));
    // console.log(data);
});

self.addEventListener('notificationclick', function (event) {
    // console.log("Notification click event received."); // Сообщение об активации обработчика


    event.notification.close(); // Закрываем уведомление
    // console.log(event)
    const targetUrl = event.notification.data && event.notification.data ? event.notification.data : '/';
    // console.log("Target URL to open:", targetUrl); // Выводим URL, который будет открыт

    event.waitUntil(
        clients.matchAll({type: 'window', includeUncontrolled: true}).then(clientList => {
            for (const client of clientList) {
                if (client.url === targetUrl && 'focus' in client) {
                    // console.log("Focusing on existing client:", client.url); // Сообщение об активации уже открытого клиента
                    return client.focus();
                }
            }
            if (clients.openWindow) {
                // console.log("Opening new window:", targetUrl); // Сообщение об открытии нового окна
                return clients.openWindow(targetUrl);
            }
        })
    );
});
