
self.addEventListener('message', event => {
    if (event.data.type === 'SHOW_NOTIFICATION') {
        event.waitUntil(
            self.registration.showNotification(event.data.title, event.data.options)
                .catch(error => {
                })
        );
    }
    if (event.data.type === 'CLOSE_NOTIFICATION') {
        event.waitUntil(
            self.registration.getNotifications({ tag: event.data.tag })
                .then(notifications => {
                    notifications.forEach(notification => notification.close());
                })
                .catch(error => {
                })
        );
    }
});

self.addEventListener('notificationclick', event => {
    event.notification.close();
    if (event.notification.data && event.notification.data.url) {
        const windowName='wirechat-conversation';
        event.waitUntil(clients.openWindow(event.notification.data.url,windowName));
    }
});
