lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
32 lines • 1.41 kB
JavaScript
import store, { createEffect } from "@lincode/reactivity";
import { getTimelineExpandedUUIDs } from "./useTimelineExpandedUUIDs";
import { keyframesPtr } from "../pointers/keyframesPtr";
import { timelineDataPtr } from "../pointers/timelineDataPtr";
import { getTimelineData } from "./useTimelineData";
export const [setTimelineKeyframeEntries, getTimelineKeyframeEntries] = store([]);
createEffect(() => {
const [timelineData] = timelineDataPtr;
const [expandedUUIDs] = getTimelineExpandedUUIDs();
if (!timelineData) {
setTimelineKeyframeEntries([]);
return;
}
keyframesPtr[0] = {};
const [keyframes] = keyframesPtr;
for (const [uuid, data] of Object.entries(timelineData)) {
const frameRecord = (keyframes[uuid] = {});
for (const frames of Object.values(data))
for (const frame of Object.keys(frames))
frameRecord[frame] = true;
if (!expandedUUIDs.has(uuid))
continue;
for (const [property, frames] of Object.entries(data)) {
const layerFrameList = (keyframes[uuid + " " + property] = {});
for (const frame of Object.keys(frames))
layerFrameList[frame] = true;
}
}
//mark
setTimelineKeyframeEntries(Object.entries(keyframes));
}, [getTimelineExpandedUUIDs, getTimelineData]);
//# sourceMappingURL=useTimelineKeyframeEntries.js.map