Milestone v1.0: FamilySync MVP #1

Merged
luckberg merged 376 commits from gsd/v1.0-milestone into main 2026-06-10 17:39:19 -04:00
2 changed files with 15 additions and 6 deletions
Showing only changes of commit c864fc4eea - Show all commits
+1 -1
View File
@@ -26,7 +26,7 @@ const IOS_STEPS = [
] ]
const ANDROID_STEPS = [ const ANDROID_STEPS = [
'Open Chrome on your phone', 'Open your browser (Chrome or Edge) on your phone',
'Tap the three-dot menu → Settings', 'Tap the three-dot menu → Settings',
'Tap Site Settings → Notifications', 'Tap Site Settings → Notifications',
'Find FamilySync and tap Allow', 'Find FamilySync and tap Allow',
+12 -3
View File
@@ -121,12 +121,21 @@ self.addEventListener('push', (event: PushEvent) => {
// event.waitUntil() is MANDATORY: keeps the SW alive until the notification // event.waitUntil() is MANDATORY: keeps the SW alive until the notification
// is displayed. Without it the SW may be terminated before showNotification // is displayed. Without it the SW may be terminated before showNotification
// resolves, resulting in a silent push (iOS subscription death). // resolves, resulting in a silent push (iOS subscription death).
event.waitUntil( // renotify and vibrate are valid NotificationOptions per spec but are absent
self.registration.showNotification(title, { // from some lib.dom versions (TS strict check). Cast the extended object to
// NotificationOptions so only these two extra keys are affected — no blanket
// suppression of unrelated errors elsewhere in the file.
const options = {
body, body,
tag, tag,
data: { url }, data: { url },
}), icon: '/icon-192.png',
badge: '/icon-192.png',
renotify: true,
vibrate: [200, 100, 200],
} as NotificationOptions
event.waitUntil(
self.registration.showNotification(title, options),
) )
}) })