Skip to content

@remotion/studio: Internal rename for timeline items#7866

Merged
JonnyBurger merged 2 commits into
mainfrom
cursor/timeline-selection-items-312a
May 31, 2026
Merged

@remotion/studio: Internal rename for timeline items#7866
JonnyBurger merged 2 commits into
mainfrom
cursor/timeline-selection-items-312a

Conversation

@JonnyBurger
Copy link
Copy Markdown
Member

@JonnyBurger JonnyBurger commented May 31, 2026

Fixes #7858.

Summary

  • Rename timeline row components to canonical *Item names.
  • Refactor timeline selection rows into explicit sequence, sequence-prop, sequence-all-effects, sequence-effect, and sequence-effect-prop variants.
  • Update duplicate/delete selection logic and timeline selection tests for the discriminated union.

Testing

  • bun test src/test/timeline-selection.test.ts
  • bun run formatting from packages/studio
  • bunx turbo run make --filter='@remotion/studio'
  • bun run build
  • bunx turbo run lint formatting --filter='@remotion/studio' (passes with pre-existing Studio lint warnings)
  • bun run stylecheck (blocked by known @remotion/lambda-go Go 1.22.2 environment limitation; package-specific Studio stylecheck passes)
Open in Web Open in Cursor 

Co-authored-by: Jonny Burger <hi@jonny.io>
@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 2:45pm
remotion Ready Ready Preview, Comment May 31, 2026 2:45pm

Request Review

@JonnyBurger JonnyBurger marked this pull request as ready for review May 31, 2026 14:32
@JonnyBurger JonnyBurger changed the title @remotion/studio: Rename timeline items @remotion/studio: Internal rename for timeline items May 31, 2026
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.

✅ No new issues found.

Reviewed changes — rename timeline row components to canonical *Item names and refactor the TimelineSelection discriminated union from a single row variant into explicit sequence*, sequence-prop, sequence-all-effects, sequence-effect, and sequence-effect-prop variants.

  • Rename timeline componentsTimelineEffectGroupRowTimelineEffectItem, TimelineEffectFieldRowTimelineEffectPropItem, TimelineListItemTimelineSequenceItem, TimelineSequenceFieldRowTimelineSequencePropItem; all imports and call sites updated consistently.
  • Introduce explicit selection variants — replaces opaque type: 'row' with a discriminated union where each variant corresponds to a known auxiliaryKeys pattern from buildTimelineTree, making the selection model self-documenting.
  • Add getTimelineSelectionFromNodePathInfo — centralizes parsing of SequenceNodePathInfo into the correct TimelineSelection variant; correctly handles all valid auxiliaryKeys shapes ([], ['controls', key], ['effects'], ['effects', index], ['effects', index, key]) and returns null for unrecognized patterns.
  • Update selection key generationgetTimelineSelectionKey now encodes the explicit variant type into the key string, which is safe because selection state is purely in-memory (SELECTION_ENABLED is still false).
  • Update delete/duplicate guardsdelete-selected-timeline-item.ts and duplicate-selected-timeline-item.ts now match on the explicit union instead of inspecting auxiliaryKeys inline; behavior is preserved (sequence and sequence-effect are deletable, props/groups are not).
  • Expand test coveragetimeline-selection.test.ts covers all five getTimelineSelectionFromNodePathInfo variants plus the malformed-effect-index fallback to null.

Pullfrog  | View workflow run | Using Kimi K2𝕏

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.

✅ No new issues found.

Reviewed changes — rename timeline row components to canonical *Item names and refactor the TimelineSelection discriminated union from a single row variant into explicit sequence*, sequence-prop, sequence-all-effects, sequence-effect, and sequence-effect-prop variants.

  • Rename timeline componentsTimelineEffectGroupRowTimelineEffectItem, TimelineEffectFieldRowTimelineEffectPropItem, TimelineListItemTimelineSequenceItem, TimelineSequenceFieldRowTimelineSequencePropItem; all imports and call sites updated consistently.
  • Introduce explicit selection variants — replaces opaque type: 'row' with a discriminated union where each variant corresponds to a known auxiliaryKeys pattern from buildTimelineTree, making the selection model self-documenting.
  • Add getTimelineSelectionFromNodePathInfo — centralizes parsing of SequenceNodePathInfo into the correct TimelineSelection variant; correctly handles all valid auxiliaryKeys shapes ([], ['controls', key], ['effects'], ['effects', index], ['effects', index, key]) and returns null for unrecognized patterns.
  • Update selection key generationgetTimelineSelectionKey now encodes the explicit variant type into the key string, which is safe because selection state is purely in-memory (SELECTION_ENABLED is still false).
  • Update delete/duplicate guardsdelete-selected-timeline-item.ts and duplicate-selected-timeline-item.ts now match on the explicit union instead of inspecting auxiliaryKeys inline; behavior is preserved (sequence and sequence-effect are deletable, props/groups are not).
  • Expand test coveragetimeline-selection.test.ts covers all five getTimelineSelectionFromNodePathInfo variants plus the malformed-effect-index fallback to null.

Pullfrog  | View workflow run | Using Kimi K2𝕏

@JonnyBurger JonnyBurger merged commit 8bdef9e into main May 31, 2026
19 of 20 checks passed
@JonnyBurger JonnyBurger deleted the cursor/timeline-selection-items-312a branch May 31, 2026 14:45
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.

Rename Timeline item components to canonical names

2 participants