@remotion/studio: Disable freeze frame outside visible range - #9722
Conversation
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — a clean guard that disables the freeze-frame menu item when the playhead is outside the sequence's visible [from, from+duration) range, plus a boundary unit test.
- Add
isSequenceVisibleAtTimelinePosition— checks whether the timeline position falls within the sequence's output frame range, ignoring premounting/postmounting. - Gate
canToggleFreezeon visibility — adds the new check as the first guard in thecanToggleFreezechain so the menu item is disabled outside the visible range. - Unit test boundary values — verifies
position: 19/20/59/60for a sequence atfrom: 20, duration: 40, confirming the half-open interval semantics.
DeepSeek Pro (free via Pullfrog for OSS) (Claude Opus not used — the program covers this model; add its provider key to run your pick) | 𝕏
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — the new commit replaces null with undefined when removing the freeze prop, so unfreeze now removes the attribute from JSX instead of writing freeze={null}. A updateSequenceProps test confirms the prop-stripping behavior.
null→undefinedon unfreeze — inuse-sequence-freeze-frame-menu-item.ts, theremovepath now passesundefinedas the value, which causesupdateSequencePropsto stripfreeze=from the JSX output.- Test for optional-attribute removal — new
updateSequencePropstest that setsfreezetoundefinedand asserts the output no longer containsfreeze=.
DeepSeek Pro (free via Pullfrog for OSS) (Claude Opus not used — the program covers this model; add its provider key to run your pick) | 𝕏

Summary
freezeJSX prop when unfreezing instead of writingfreeze={null}.Test plan
bun run buildbun run stylecheckcd packages/studio && bun run testcd packages/studio-server && bun test src/test/update-sequence-props.test.tsCloses #9713