From 9a96cce89558aa2fcd4f2fc0f6e4c518044e1b5a Mon Sep 17 00:00:00 2001 From: Christopher Oliphant Date: Mon, 8 Apr 2024 06:53:12 -0400 Subject: [PATCH] Clear existing data on load --- .../comps/Timeline/utils/useQueueHandler.ts | 3 ++- .../contexts/TrackContext/TrackContext.tsx | 5 ++++ .../contexts/TrackContext/TrackProvider.tsx | 26 ++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/app/pages/PageEnigma/comps/Timeline/utils/useQueueHandler.ts b/app/pages/PageEnigma/comps/Timeline/utils/useQueueHandler.ts index 5017af70ae..edf88049e3 100644 --- a/app/pages/PageEnigma/comps/Timeline/utils/useQueueHandler.ts +++ b/app/pages/PageEnigma/comps/Timeline/utils/useQueueHandler.ts @@ -37,7 +37,7 @@ const LOADING_FUNCTIONS: Record void> = { export function useQueueHandler() { useSignals(); - const { addKeyframe } = useContext(TrackContext); + const { addKeyframe, clearExistingData } = useContext(TrackContext); const handleFromEngineActions = useCallback(({ action, data }: Arguments) => { console.log("FROM ENGINE", action, data); @@ -46,6 +46,7 @@ export function useQueueHandler() { currentTime.value = (data as UpdateTime).currentTime; break; case fromEngineActions.UPDATE_TIME_LINE: + clearExistingData(); (data as ClipUI[]).forEach((item) => { LOADING_FUNCTIONS[item.group](item); }); diff --git a/app/pages/PageEnigma/contexts/TrackContext/TrackContext.tsx b/app/pages/PageEnigma/contexts/TrackContext/TrackContext.tsx index f1105ec7c6..0c8d6b0b80 100644 --- a/app/pages/PageEnigma/contexts/TrackContext/TrackContext.tsx +++ b/app/pages/PageEnigma/contexts/TrackContext/TrackContext.tsx @@ -6,6 +6,9 @@ export const TrackContext = createContext<{ addKeyframe: (keyframe: QueueKeyframe, offset: number) => void; deleteKeyframe: (keyframe: Keyframe) => void; + // misc + clearExistingData: () => void; + // drag and drop startDrag: (item: MediaItem) => void; endDrag: () => void; @@ -13,6 +16,8 @@ export const TrackContext = createContext<{ addKeyframe: () => {}, deleteKeyframe: () => {}, + clearExistingData: () => {}, + startDrag: () => {}, endDrag: () => {}, }); diff --git a/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx b/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx index f216c0f859..f8348d1c5a 100644 --- a/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx +++ b/app/pages/PageEnigma/contexts/TrackContext/TrackProvider.tsx @@ -12,6 +12,10 @@ import { dropId, dropOffset, addObject, + characterGroups, + cameraGroup, + audioGroup, + objectGroup, } from "~/pages/PageEnigma/store"; import useUpdateKeyframe from "~/pages/PageEnigma/contexts/TrackContext/utils/useUpdateKeyframe"; @@ -67,14 +71,34 @@ export const TrackProvider = ({ children }: Props) => { endDrag(); }, [endDrag]); + const clearExistingData = useCallback(() => { + characterGroups.value = []; + cameraGroup.value = { + id: "CG1", + keyframes: [], + }; + audioGroup.value = { + id: "AG-1", + clips: [], + muted: false, + }; + objectGroup.value = { + id: "OG1", + objects: [], + }; + }, []); + const values = useMemo(() => { return { ...keyframes, + clearExistingData, + ...dragDrop, endDrag: dropClip, }; - }, [keyframes, dragDrop, dropClip]); + }, [keyframes, dragDrop, dropClip, clearExistingData]); + return ( {children} );