mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-08 10:46:06 +00:00
feat(studio): wire expanded keyframe timeline lanes
This commit is contained in:
@@ -56,6 +56,7 @@ export interface EditorShellProps extends TimelineEditCallbackDeps {
|
||||
) => Promise<void> | void;
|
||||
setCompIdToSrc: (map: Map<string, string>) => void;
|
||||
setCompositionLoading: (loading: boolean) => void;
|
||||
shouldShowMotionPath: boolean;
|
||||
shouldShowSelectedDomBounds: boolean;
|
||||
blockPreview?: BlockPreviewInfo | null;
|
||||
isGestureRecording?: boolean;
|
||||
@@ -90,6 +91,7 @@ export function EditorShell({
|
||||
handleRazorSplitAll,
|
||||
setCompIdToSrc,
|
||||
setCompositionLoading,
|
||||
shouldShowMotionPath,
|
||||
shouldShowSelectedDomBounds,
|
||||
isGestureRecording,
|
||||
recordingState,
|
||||
@@ -149,6 +151,7 @@ export function EditorShell({
|
||||
onDeleteElement={handleTimelineElementDelete}
|
||||
previewOverlay={
|
||||
<PreviewOverlays
|
||||
shouldShowMotionPath={shouldShowMotionPath}
|
||||
shouldShowSelectedDomBounds={shouldShowSelectedDomBounds}
|
||||
blockPreview={blockPreview}
|
||||
isGestureRecording={isGestureRecording}
|
||||
|
||||
@@ -520,12 +520,12 @@ export const MotionPathOverlay = memo(function MotionPathOverlay({
|
||||
<KeyframeDiamondContextMenu
|
||||
state={kfMenu}
|
||||
onClose={() => setKfMenu(null)}
|
||||
onDelete={(_elId, target) =>
|
||||
animId && handleGsapRemoveKeyframe(animId, target.percentage)
|
||||
onDelete={(_elId, keyframe) =>
|
||||
animId && handleGsapRemoveKeyframe(animId, keyframe.percentage)
|
||||
}
|
||||
onDeleteAll={() => animId && handleGsapRemoveAllKeyframes(animId)}
|
||||
onMoveToPlayhead={(_element, target) =>
|
||||
animId && handleGsapMoveKeyframeToPlayhead(animId, target.percentage)
|
||||
onMoveToPlayhead={(_element, keyframe) =>
|
||||
animId && handleGsapMoveKeyframeToPlayhead(animId, keyframe.percentage)
|
||||
}
|
||||
/>
|
||||
)}
|
||||
|
||||
@@ -27,6 +27,7 @@ import type { GestureRecordingState } from "../editor/GestureRecordControl";
|
||||
import type { ReactNode } from "react";
|
||||
|
||||
export interface PreviewOverlaysProps {
|
||||
shouldShowMotionPath: boolean;
|
||||
shouldShowSelectedDomBounds: boolean;
|
||||
blockPreview?: BlockPreviewInfo | null;
|
||||
isGestureRecording?: boolean;
|
||||
@@ -132,6 +133,7 @@ export function resolveZIndexEntries(
|
||||
|
||||
// fallow-ignore-next-line complexity
|
||||
export function PreviewOverlays({
|
||||
shouldShowMotionPath,
|
||||
shouldShowSelectedDomBounds,
|
||||
blockPreview,
|
||||
isGestureRecording,
|
||||
@@ -274,7 +276,7 @@ export function PreviewOverlays({
|
||||
{STUDIO_KEYFRAMES_ENABLED && (
|
||||
<MotionPathOverlay
|
||||
iframeRef={previewIframeRef}
|
||||
selection={shouldShowSelectedDomBounds ? domEditSelection : null}
|
||||
selection={shouldShowMotionPath ? domEditSelection : null}
|
||||
compositionSize={compositionDimensions}
|
||||
isPlaying={isPlaying}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user