Commit Graph

7 Commits

Author SHA1 Message Date
Jeff Emmett 96fea103fd fix: Move share location button to bottom right
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 23:37:41 +01:00
Jeff Emmett e59150a9ce fix: Improve location handling, session persistence, and mobile UI
Location fixes:
- Add coordinate validation to reject invalid (0,0) and out-of-bounds locations
- Clean up stale participants after 15 minutes (was 1 hour)
- Remove invalid locations from localStorage on load
- Use CCH venue center instead of (0,0) for indoor positions without GPS

Session persistence:
- Remember user name and emoji across sessions on home page
- Pre-fill profile form with saved user info

Mobile UI improvements:
- Add floating location share button inside the map
- Visible on all screen sizes with responsive text
- Prominent styling: white when inactive, green when sharing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 23:34:00 +01:00
Jeff Emmett a6c124c14c feat: Add navigation routes feature with indoor/outdoor routing
- Add /api/routing endpoint for route calculation
- Support OSRM for outdoor walking/driving routes
- Support c3nav API for indoor routes at CCC events
- Add RouteOverlay component for map route visualization
- Add NavigationPanel for participant/waypoint navigation UI
- Integrate route state management into Zustand store
- Display route line on outdoor map with distance/time estimates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 23:24:42 +01:00
Jeff Emmett 760e27564c feat: Add c3nav indoor map integration with floor selector
- Add c3nav tile proxy API route with session handling
- Add c3nav data API proxy for locations/bounds
- Create IndoorMapView component with MapLibre GL
- Add floor level selector (Level 0-4)
- Tap-to-set-position on indoor map
- Sync indoor positions between participants
- Easter egg: Triple-click Level 0 for "The Underground of the Underground"
- Fix race condition in useRoom when no user data

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 19:44:33 -05:00
Jeff Emmett 50e1feb62c Improve Meeting Point UX: add address search, fix Indoor Map
- Indoor Map now opens c3nav in new tab (iframe blocked by X-Frame-Options)
- Meeting Point modal now has:
  - "Use My Location" button that fetches GPS position on demand
  - Address search using OpenStreetMap Nominatim API
  - Search results dropdown with clickable options
  - Manual coordinates entry (hidden by default)
  - Selected location preview with coordinates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 16:38:14 -05:00
Jeff Emmett 0a234f902a Fix Indoor Map button, add Meeting Point functionality, render waypoints
- Fix Indoor Map button being covered by participant panel (z-30)
- Implement Set Meeting Point modal with emoji selection
- Add waypoint markers rendering on the map
- Pass waypoints from room through DualMapView to MapView
- Fix TypeScript types for WaypointType

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 16:31:19 -05:00
Jeff Emmett 530979978d Add real-time sync, c3nav integration, and PWA icons
Features:
- Automerge-based real-time room sync with CRDT
- c3nav indoor map integration for CCC events
- DualMapView component (auto-switches indoor/outdoor)
- useRoom hook for room state management
- PWA icons and manifest

Infrastructure:
- DNS configured for rmaps.online, www, and *.rmaps.online
- Cloudflare tunnel updated for wildcard subdomains
- Fixed Next.js security update to 14.2.28

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 12:50:28 -05:00