summaryrefslogtreecommitdiff
path: root/packages/sw/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sw/src')
-rw-r--r--packages/sw/src/scripts/create-notification.ts7
-rw-r--r--packages/sw/src/sw.ts13
2 files changed, 19 insertions, 1 deletions
diff --git a/packages/sw/src/scripts/create-notification.ts b/packages/sw/src/scripts/create-notification.ts
index 61ffa7ab0f..8f8f22480e 100644
--- a/packages/sw/src/scripts/create-notification.ts
+++ b/packages/sw/src/scripts/create-notification.ts
@@ -199,6 +199,13 @@ async function composeNotification(data: PushNotificationDataMap[keyof PushNotif
tag: `achievement:${data.body.achievement}`,
}];
+ case 'pollEnded':
+ return [t('_notification.pollEnded'), {
+ body: data.body.note.text ?? '',
+ badge: iconUrl('chart-arrows'),
+ data,
+ }];
+
case 'app':
return [data.body.header ?? data.body.body, {
body: data.body.header ? data.body.body : '',
diff --git a/packages/sw/src/sw.ts b/packages/sw/src/sw.ts
index 2783f2bfb5..1f085c7392 100644
--- a/packages/sw/src/sw.ts
+++ b/packages/sw/src/sw.ts
@@ -21,6 +21,10 @@ globalThis.addEventListener('activate', ev => {
);
});
+function offlineContentHTML(): string {
+ return `<!doctype html>Offline. Service Worker @${_VERSION_} <button onclick="location.reload()">reload</button>`
+}
+
globalThis.addEventListener('fetch', ev => {
let isHTMLRequest = false;
if (ev.request.headers.get('sec-fetch-dest') === 'document') {
@@ -34,7 +38,14 @@ globalThis.addEventListener('fetch', ev => {
if (!isHTMLRequest) return;
ev.respondWith(
fetch(ev.request)
- .catch(() => new Response(`Offline. Service Worker @${_VERSION_}`, { status: 200 })),
+ .catch(() => {
+ return new Response(offlineContentHTML(), {
+ status: 200,
+ headers: {
+ 'content-type': 'text/html',
+ },
+ });
+ }),
);
});