No description
seek-to-frame! and the rAF clock both reach the <video> through the shared video-el atom, which was populated by an inline :ref closure — recreated every render and callable with nil by React, so video-el ended up nil. That made set! currentTime (jumps + scrubs) and the clock's currentTime read both silent no-ops: the red line moved (separate :playhead dispatch) but the picture never seeked or followed. Capture the element with a stable ref that ignores nil, and collapse the clock to a single source of truth: one always-on rAF copies currentTime into :playhead, and jump/scrub only seek (no optimistic :playhead write), so the line and the picture can't disagree. Replaces the old push!/tick/stop + on-play/on-pause/on-seeked bookkeeping. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| tl | ||
| .gitignore | ||