diff --git a/app/pages/PageEnigma/Queue/toEngineActions.ts b/app/pages/PageEnigma/Queue/toEngineActions.ts
index 867730e006..4f695a239c 100644
--- a/app/pages/PageEnigma/Queue/toEngineActions.ts
+++ b/app/pages/PageEnigma/Queue/toEngineActions.ts
@@ -15,4 +15,6 @@ export enum toEngineActions {
// data=QueueClip
UPDATE_TIME = "update_time",
// data={currentTime: number}
+ ADD_KEYFRAME = "add_keyframe",
+ // data= QueueKeyframe
}
diff --git a/app/pages/PageEnigma/comps/Timeline/Character.tsx b/app/pages/PageEnigma/comps/Timeline/Character.tsx
index a6d6fadd0e..6501221d2f 100644
--- a/app/pages/PageEnigma/comps/Timeline/Character.tsx
+++ b/app/pages/PageEnigma/comps/Timeline/Character.tsx
@@ -2,6 +2,7 @@ import { useCallback, useContext, useMemo } from "react";
import { TrackContext } from "~/pages/PageEnigma/contexts/TrackContext/TrackContext";
import { TrackClips } from "~/pages/PageEnigma/comps/Timeline/TrackClips";
import { fullWidth } from "~/pages/PageEnigma/store";
+import { TrackKeyFrames } from "~/pages/PageEnigma/comps/Timeline/TrackKeyFrames";
function buildUpdaters(
updateCharacters: (options: {
@@ -52,7 +53,7 @@ export const Character = ({ characterId }: Props) => {
if (!character) {
return false;
}
- const { animationClips, positionClips, lipSyncClips } = character;
+ const { animationClips, positionKeyframes, lipSyncClips } = character;
return (
{
style="character"
type="animations"
/>
-
{
const {
characters,
objects,
- selectedClip,
+ selectedItem,
deleteCharacterClip,
deleteAudioClip,
deleteCameraClip,
@@ -43,20 +43,20 @@ export const Timeline = () => {
const onDeleteAsk = useCallback(
(event: KeyboardEvent) => {
- if (["Backspace", "Delete"].indexOf(event.key) > -1 && selectedClip) {
+ if (["Backspace", "Delete"].indexOf(event.key) > -1 && selectedItem) {
setDialogOpen(true);
}
},
- [selectedClip],
+ [selectedItem],
);
const displayTime = time === -1 ? currentTime.value : time;
const onDelete = useCallback(() => {
- deleteCharacterClip(selectedClip!);
- deleteCameraClip(selectedClip!);
- deleteAudioClip(selectedClip!);
- }, [selectedClip, deleteAudioClip, deleteCharacterClip, deleteCameraClip]);
+ deleteCharacterClip(selectedItem!);
+ deleteCameraClip(selectedItem!);
+ deleteAudioClip(selectedItem!);
+ }, [selectedItem, deleteAudioClip, deleteCharacterClip, deleteCameraClip]);
useEffect(() => {
document.addEventListener("keydown", onDeleteAsk);
diff --git a/app/pages/PageEnigma/comps/Timeline/TrackClip.tsx b/app/pages/PageEnigma/comps/Timeline/TrackClip.tsx
index e494003304..5747a8509f 100644
--- a/app/pages/PageEnigma/comps/Timeline/TrackClip.tsx
+++ b/app/pages/PageEnigma/comps/Timeline/TrackClip.tsx
@@ -18,7 +18,7 @@ interface Props {
}
export const TrackClip = ({ clip, min, max, style, updateClip }: Props) => {
- const { selectClip, selectedClip } = useContext(TrackContext);
+ const { selectItem, selectedItem } = useContext(TrackContext);
const [state, setState] = useState({
length: clip.length,
offset: clip.offset,
@@ -48,7 +48,7 @@ export const TrackClip = ({ clip, min, max, style, updateClip }: Props) => {
const classes = [
"absolute",
- clip.clip_uuid === selectedClip
+ clip.clip_uuid === selectedItem
? `bg-${style}-selected`
: `bg-${style}-clip`,
];
@@ -71,7 +71,7 @@ export const TrackClip = ({ clip, min, max, style, updateClip }: Props) => {
...classes,
"rounded-l-lg",
"block h-full",
- clip.clip_uuid === selectedClip
+ clip.clip_uuid === selectedItem
? "border border-b-2 border-l-2 border-r-0 border-t-2 border-white focus-visible:outline-0"
: "",
].join(" ")}
@@ -81,13 +81,13 @@ export const TrackClip = ({ clip, min, max, style, updateClip }: Props) => {
cursor: "w-resize",
}}
onPointerDown={(event) => onPointerDown(event, "left")}
- onClick={() => selectClip(clip.clip_uuid)}
+ onClick={() => selectItem(clip.clip_uuid)}
/>