MotorSignal-App/website/tests
Billie Ponder ac76257210
feat(website): smooth continuous replay camera follow and mobile tile loading (#42)
* feat(website): smooth continuous replay camera follow and mobile tile loading

- Smooth camera following: compute frame-rate-independent camera translation with 32px dead-zone and velocity clamping to keep motorcycle centered without camera oscillation or outrunning tile loading.
- Mobile tile rasterization: configure tile layers with updateWhenIdle: false, keepBuffer: 8, and updateInterval: 100 to eliminate Leaflet mobile pan tile freezing and black voids.
- Interactive follow controls: gracefully suspend auto-follow on user drag/zoom; add 'Following'/'Re-center' toggle and 'Fit Route' controls.
- Tile error recovery: single retry with backoff for transient tile errors before reporting fallback status.
- Add comprehensive unit tests in telemetry-camera-follow.test.ts and component behavioral tests in replay-map-camera-follow.test.tsx.

* fix(website): isolate tab recentering from sample advancement and suspend follow on manual zoom

- P1: Stop camera recentering at every telemetry sample boundary. In web-telemetry-replay-modal.tsx, isolate the map recentering and size invalidation effect to run solely on activeTab changes rather than on currentPoint index advancements. Track latest interpolated position via latestPositionRef, allowing the smooth camera follow engine to exclusively drive camera updates during playback without raw snapping.
- P2: Suspend follow mode upon user-initiated zoom gestures (pinch, wheel, double click via zoomstart) alongside dragstart. Guard programmatic zoom operations (initial fitBounds and fitRoute) using isProgrammaticZoomRef so initial map setup does not inadvertently disable follow mode.
- Add regression coverage in replay-map-camera-follow.test.tsx verifying sample boundary crossings within the dead-zone do not trigger raw panTo snapping, and verifying manual zoom suspends following until explicit Re-center.

---------

Co-authored-by: Developer <dev@example.com>
2026-10-15 01:56:09 -04:00
..
account-metrics-truthfulness.test.tsx fix(website): harden account peak-lean states, stale metrics hygiene, and demo-chat error precedence 2026-10-14 16:05:37 -04:00
account-truthful-states.test.tsx fix(website): replace fabricated account states with truthful ones (W-2FA, W-devices, W-metrics) 2026-10-14 12:02:18 -04:00
auth-form.test.tsx feat(website): add club curated routes, live squad chat, and portal navigation 2026-10-02 12:39:38 -04:00
auth-recovery-verification.test.tsx feat(mobile): add community social feed, tactical layers, club wall, launch curves, and curvy routes (v1.0.2+102) 2026-09-29 11:50:48 -04:00
club-community-data.test.ts feat: add club members and wall management 2026-10-01 08:31:45 -04:00
club-community-ui.test.tsx feat(website): add club moderation, stats, and group rides management 2026-10-02 11:07:44 -04:00
club-ranks-roles-interactive.test.tsx fix(website): stop club rank matrix from faking a permission save (WEB-W1) 2026-10-14 11:20:29 -04:00
club-rides-discovery.test.ts feat(group-rides): secure club join moderation and discovery (Phase 3A) (#26) 2026-09-24 12:00:48 -04:00
community-personal-rides.test.ts feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
create-group-ride.test.ts fix(website): monotonic timestamp ride IDs, zero-budget cursor guard, and modal input preservation 2026-10-14 15:07:00 -04:00
deployment-revision.test.cjs feat(website): expose and verify deployed Git revision (#13) 2026-09-20 18:59:17 -04:00
firebase-client-emulator.test.ts fix(website): isolate Firebase configuration for staging and enforce safety guards 2026-10-08 10:50:28 -04:00
firebase-staging-isolation.test.ts fix(website): isolate Firebase configuration for staging and enforce safety guards 2026-10-08 10:50:28 -04:00
founder-moderation.test.tsx feat(website): add club moderation, stats, and group rides management 2026-10-02 11:07:44 -04:00
founder-notifications.test.tsx fix: open club updates from the notification bell 2026-10-01 08:32:06 -04:00
founder-portal.test.cjs feat(group-rides): secure club join moderation and discovery (Phase 3A) (#26) 2026-09-24 12:00:48 -04:00
founder-routes-chat.test.tsx fix(website): harden account peak-lean states, stale metrics hygiene, and demo-chat error precedence 2026-10-14 16:05:37 -04:00
founder-stats.test.tsx feat(website): add club moderation, stats, and group rides management 2026-10-02 11:07:44 -04:00
group-ride-join-requests.test.ts feat(group-rides): secure club join moderation and discovery (Phase 3A) (#26) 2026-09-24 12:00:48 -04:00
group-ride-payload.test.ts fix(website): truthful group-ride creation — no false success, no fabricated GPS (Phase 3) 2026-10-14 12:49:16 -04:00
group-rides-page.test.tsx fix(website): monotonic timestamp ride IDs, zero-budget cursor guard, and modal input preservation 2026-10-14 15:07:00 -04:00
navigation-auth.cjs feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
operations-speedtest.test.tsx feat(ops): add dual speedtest options, support ticket fixes, cms sync, and overview card redesign (#23) 2026-09-22 01:38:54 -04:00
ops-experience.test.cjs feat(ops): add dual speedtest options, support ticket fixes, cms sync, and overview card redesign (#23) 2026-09-22 01:38:54 -04:00
radar-access-lifecycle.test.tsx feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
real-telemetry-replay.test.tsx feat(website): smooth motorcycle replay animation with 60 FPS sub-sample interpolation (#40) 2026-10-14 22:02:32 -04:00
replay-map-camera-follow.test.tsx feat(website): smooth continuous replay camera follow and mobile tile loading (#42) 2026-10-15 01:56:09 -04:00
replay-recorded-data.test.tsx feat(website): smooth motorcycle replay animation with 60 FPS sub-sample interpolation (#40) 2026-10-14 22:02:32 -04:00
responsive-layout.test.cjs feat(website): standardize dark glass design system, obsidian contrast buttons, and rider account management 2026-09-18 18:35:31 -04:00
ride-telemetry-api.test.ts feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
support-contact.test.tsx feat(website): grounded FAQ and validated contact on Support Center (W2) 2026-10-14 12:11:20 -04:00
support-report-modal.test.tsx feat(ops): add dual speedtest options, support ticket fixes, cms sync, and overview card redesign (#23) 2026-09-22 01:38:54 -04:00
telemetry-camera-follow.test.ts feat(website): smooth continuous replay camera follow and mobile tile loading (#42) 2026-10-15 01:56:09 -04:00
telemetry-playback-sync.test.ts fix(website): monotonic timestamp ride IDs, zero-budget cursor guard, and modal input preservation 2026-10-14 15:07:00 -04:00
telemetry-replay-export.test.tsx fix: resolve Android CI breakpoint overflow and address Codex PR #28 findings 2026-10-09 18:53:39 -04:00
telemetry-smooth-replay.test.ts feat(website): smooth motorcycle replay animation with 60 FPS sub-sample interpolation (#40) 2026-10-14 22:02:32 -04:00
telemetry-track-regression.test.ts feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00
website-session-proxy.test.ts feat(core): reconcile local development, hybrid design, sensor fusion, and docs 2026-10-09 05:12:01 -04:00