Fix alert dedup across reloads, add radar fullscreen, fix swipe conflicts

- Persist alertIdsSeen to localStorage so already-seen alerts don't
  re-notify every time the PWA is opened; cap stored IDs at 200 entries
- Use serviceWorker.showNotification() for alert notifications so they
  work when the app is backgrounded, with fallback to new Notification()
- Add ⛶ fullscreen button to radar embed; uses Fullscreen API and
  resizes the MapLibre canvas after toggle
- Fix swipe-to-change-tab: block gesture when touch starts on a map,
  hourly scroll row, or radar timeline; also require the gesture to be
  more horizontal than vertical (dx > dy*1.5) to avoid conflict with
  vertical scrolling
This commit is contained in:
Claude committed 2026-08-17 01:10:09 +00:00
1 parent a25864d9ed
commit 4d92739df4
3 files changed
+88 -5

No files matched your search

+21
View File
@@ -1680,6 +1680,27 @@ details[open] .drawer-chevron { transform: rotate(90deg); }
.radar-btn:hover { opacity: 0.72; }
.layer-btn { background: var(--accent); }
.fullscreen-btn { font-size: 1rem; }
/* Fullscreen state for the radar embed */
.radar-embed-wrap:fullscreen,
.radar-embed-wrap:-webkit-full-screen {
display: flex;
flex-direction: column;
border-radius: 0;
margin: 0;
background: #000;
}
.radar-embed-wrap:fullscreen #radar-embed,
.radar-embed-wrap:-webkit-full-screen #radar-embed {
flex: 1;
height: 0;
}
.radar-embed-wrap:fullscreen .radar-controls,
.radar-embed-wrap:-webkit-full-screen .radar-controls {
background: rgba(0,0,0,0.8);
border-top: 1px solid rgba(255,255,255,0.15);
}
.radar-timeline {
flex: 1;