Skip to content

@remotion/studio: Add Shift/Cmd timeline multi-select#7859

Merged
JonnyBurger merged 3 commits into
mainfrom
jonnyburger/issue-7800-pr
May 31, 2026
Merged

@remotion/studio: Add Shift/Cmd timeline multi-select#7859
JonnyBurger merged 3 commits into
mainfrom
jonnyburger/issue-7800-pr

Conversation

@JonnyBurger
Copy link
Copy Markdown
Member

Summary

  • add modifier-aware timeline selection interactions for rows and keyframes
  • implement Shift+click contiguous range selection using registered visible timeline items
  • implement Cmd/Ctrl+click toggle selection behavior
  • keep selection constrained to one item type at a time (row or keyframe)
  • wire pointer handlers to pass modifier state into selection logic
  • add unit tests covering range/toggle and mixed-type fallback behavior

Notes

  • if the current anchor type does not match the clicked item type, Shift+click falls back to selecting only the clicked item

Closes #7800

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 31, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
bugs Ready Ready Preview, Comment May 31, 2026 1:43pm
remotion Ready Ready Preview, Comment May 31, 2026 1:43pm

Request Review

Copy link
Copy Markdown
Contributor

@pullfrog pullfrog Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed changes — modifier-aware multi-select interactions (Shift+click range, Cmd/Ctrl+click toggle) for timeline rows and keyframes, plus registration of visible items to establish selection order.

  • Add TimelineSelectionInteraction and TimelineSelectionState types — model modifier keys and anchor/selection state.
  • Implement getTimelineSelectionAfterInteraction — pure selection-state reducer handling range select, toggle, and plain-click fallback with type-constrained semantics.
  • Add registerSelectableItem to TimelineSelectionProvider — tracks visible items in mount order via refs for range-selection ordering.
  • Wire modifier keys through pointer handlersTimelineKeyframeDiamond, TimelineRowChrome, and TimelineSequence now pass shiftKey/metaKey/ctrlKey into selection logic.
  • Add unit tests — cover toggle and range selection for rows, plus mixed-type anchor fallback.

Note: 1 inline comment(s) dropped because they did not anchor to lines inside the PR diff:

  • packages/studio/src/components/Timeline/TimelineRowChrome.tsx:94 (RIGHT) — line 94 (RIGHT) is not inside a diff hunk

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using Kimi K2𝕏

Comment thread packages/studio/src/test/timeline-selection.test.ts
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@JonnyBurger JonnyBurger merged commit 8614269 into main May 31, 2026
18 checks passed
@JonnyBurger JonnyBurger deleted the jonnyburger/issue-7800-pr branch May 31, 2026 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Timeline: Add multi-select UI interactions (Shift/Cmd+click)

1 participant