Commit Graph

3 Commits

Author SHA1 Message Date
Ryan Hamamura
da2d7d8983 feat: sync all markers across clients in MapLibre example
All checks were successful
CI / Build and Test (push) Successful in 34s
CI / Build and Test (pull_request) Successful in 33s
Convert the three interactive markers (yellow click, purple vehicle,
blue draggable pin) from per-client state to cross-client sync:

- Yellow click marker: PubSub broadcast on map click, all clients
  subscribe and update signal-backed marker position
- Purple vehicle marker: single shared goroutine (sync.Once + RWMutex)
  replaces per-client random movement so all clients see identical path
- Blue draggable pin: extra hidden input triggers server action on
  dragend, which publishes new position via PubSub to all clients
2026-02-20 10:13:43 -10:00
c0f4782f2b fix: maplibre reactive signal bugs and stale signal re-push (#3)
Some checks failed
CI / Build and Test (push) Failing after 36s
2026-02-20 18:31:27 +00:00
Ryan Hamamura
742212fd20 feat: add maplibre subpackage for type-safe MapLibre GL JS maps
Some checks failed
CI / Build and Test (push) Has been cancelled
Provides a Go API for interactive maps within Via applications:
- Plugin serves vendored MapLibre GL JS v4.7.1 assets
- Map struct with pre/post-render source, layer, marker, popup management
- Viewport signal sync (center, zoom, bearing, pitch) via hidden inputs
- FlyTo, SetCenter, SetZoom and other viewport setters via ExecScript
- Idempotent init script with SPA cleanup via MutationObserver
- Example app demonstrating markers, GeoJSON layers, and FlyTo actions
2026-02-19 13:37:16 -10:00