Merge pull request #2111 from heygen-com/feat/timeline-multiselect

feat(studio): timeline multi-select (marquee) + relative group time editing
This commit is contained in:
Miguel Ángel
2026-07-09 17:38:37 -04:00
committed by GitHub
39 changed files with 3686 additions and 240 deletions
@@ -10,7 +10,7 @@ export function useTimelineEditContext(): TimelineEditCallbacks {
}
/**
* Optional access returns an empty object when outside a provider.
* Optional access, returns an empty object when outside a provider.
* Useful in components that can render both inside and outside the NLE.
*/
export function useTimelineEditContextOptional(): TimelineEditCallbacks {
@@ -26,12 +26,16 @@ export function TimelineEditProvider({
}) {
const memoized = useMemo(
() => value,
// Each callback is a stable reference from the parent memoize the bag
// Each callback is a stable reference from the parent, memoize the bag
// so consumers don't re-render when unrelated parent state changes.
// eslint-disable-next-line react-hooks/exhaustive-deps
[
value.onMoveElement,
value.onResizeElement,
value.onMoveElements,
value.onResizeElements,
value.onPreviewMoveElements,
value.onPreviewResizeElements,
value.onToggleTrackHidden,
value.onToggleElementHidden,
value.onBlockedEditAttempt,