Skip to content

Mobile#10

Merged
novatechflow merged 9 commits intomainfrom
mobile
Mar 22, 2026
Merged

Mobile#10
novatechflow merged 9 commits intomainfrom
mobile

Conversation

@novatechflow
Copy link
Copy Markdown
Member

Mobile app

add mobile react app and routing.

Separate React app at /mobile served via /m/* on Caddy.
Phone UAs auto-redirect; tablets stay on desktop.

- 3-tab bottom nav: Alerts, Map, Search
- Region picker sheet (replaces cycling)
- Overlay picker on map with layer toggles
- Alert cards with severity stripe and meta
- Bottom sheet with swipe-to-dismiss for alert detail
- Pull-to-refresh on alert list
- Lazy-loaded Leaflet map (no Three.js in bundle)
- PWA manifest for add-to-homescreen
- Severity filter pills with counts
- Category chip filters on search
- Mobile bundle: 3.6 KB gzip (+ shared React)
Tapping a cluster opens a scrollable bottom sheet listing all
alerts sorted by severity. Each row shows severity badge, title,
category, freshness, and source. Tap a row to open alert detail,
tap the external link icon to open the source URL directly.
Disabled spiderfy and zoom-on-click for touch-friendly UX.
- Add category multi-select filter in mobile header (sheet picker)
- Extract shared @theme variables into src/theme.css for both apps
- Fix Docker build to bake mobile app (Caddyfile /m/* routing, manifest)
- Add Vite dev server SPA fallback for /mobile/ path
- Add Leaflet cluster styles to mobile CSS
- Touch audit: bump all targets to ≥44px, fonts to ≥10px, vh→dvh,
  touch-action:manipulation, user-select:none, search input attrs,
  proper :active states replacing :hover on AlertDetail
- Fix conflict brief violenceTypes showing alert categories instead of
  actual conflict data; hide empty violence/actors sections
@novatechflow novatechflow merged commit 4a66b7d into main Mar 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant