prop/test/microwaveprop_web/controllers
Graham McIntire f4a177c9d0
perf(weather): single-fetch viewport cells, client-side recolor on layer switch
Previously every layer toggle triggered 21 fresh tile requests with the
new layer in the URL — ~21 server-side SVG renders, plus the round-trip
overhead. Even with the GridCache fix the server still spent real CPU
generating thousands of <rect>s per tile, and the user felt it.

Add /weather/cells: a single JSON endpoint returning every layer field
for every cell in the requested viewport. The hook fetches once on
mount, time change, or pan/zoom, caches the cells in memory, and paints
them via L.svgOverlay. Layer switches now re-color the same cached
cells locally — zero network, zero server CPU.

The single SVG uses lat/lon coords with preserveAspectRatio="none";
Leaflet stretches it linearly to the bbox. There is mild equirect→
mercator distortion at low zoom over CONUS but it's imperceptible at
typical use (z6+) and the layer-toggle UX win is large.

Tile endpoint kept for back-compat. svgOverlay opacity matches the
prior tile renderer's 0.55 fill-opacity.
2026-04-29 13:31:17 -05:00
..
agent_skills_controller_test.exs feat(agent-discovery): Link/markdown/content-signal/api-catalog/skills 2026-04-17 12:09:05 -05:00
api_catalog_controller_test.exs feat(agent-discovery): Link/markdown/content-signal/api-catalog/skills 2026-04-17 12:09:05 -05:00
beacon_monitor_controller_test.exs Add beacon monitor registration and fix prod SMTP 2026-04-08 11:30:28 -05:00
contact_map_controller_test.exs test: push line coverage from 71.7% → 78.67% 2026-04-23 18:43:18 -05:00
error_html_test.exs initial 2026-03-28 11:28:47 -05:00
error_json_test.exs initial 2026-03-28 11:28:47 -05:00
health_controller_test.exs fix(probes): stop DB saturation from SIGKILLing every pod 2026-04-21 16:00:04 -05:00
page_controller_test.exs test: add /qsos→/contacts redirect + scorer conversion properties 2026-04-23 14:03:02 -05:00
user_registration_controller_test.exs Add password auth with callsign + email confirmation 2026-04-08 10:21:40 -05:00
user_reset_password_controller_test.exs feat(auth): self-service password reset 2026-04-18 08:42:35 -05:00
user_session_controller_test.exs feat(auth): self-service password reset 2026-04-18 08:42:35 -05:00
user_settings_controller_test.exs feat(accounts): add Home QTH section to user settings page 2026-04-25 16:51:54 -05:00
weather_tile_controller_test.exs perf(weather): single-fetch viewport cells, client-side recolor on layer switch 2026-04-29 13:31:17 -05:00