/** * Push notification helpers for "ping friends" in map rooms. */ export class MapPushManager { private apiBase: string; constructor(apiBase: string) { this.apiBase = apiBase; } get isSupported(): boolean { return "Notification" in window && "serviceWorker" in navigator; } async requestLocation(roomSlug: string, participantId: string): Promise { try { const res = await fetch(`${this.apiBase}/api/push/request-location`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ roomSlug, participantId }), }); return res.ok; } catch { return false; } } }