Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+100
@@ -0,0 +1,100 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.CompositionManagerProvider = void 0;
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
const react_1 = require("react");
|
||||
const CompositionManager_1 = require("./CompositionManager");
|
||||
const CompositionManagerContext_1 = require("./CompositionManagerContext");
|
||||
const CompositionManagerProvider = ({ children, onlyRenderComposition, currentCompositionMetadata, initialCompositions, initialCanvasContent, }) => {
|
||||
const [folders, setFolders] = (0, react_1.useState)([]);
|
||||
const [canvasContent, setCanvasContent] = (0, react_1.useState)(initialCanvasContent);
|
||||
const [compositions, setCompositions] = (0, react_1.useState)(initialCompositions);
|
||||
// CompositionManagerProvider state
|
||||
const currentcompositionsRef = (0, react_1.useRef)(compositions);
|
||||
const updateCompositions = (0, react_1.useCallback)((updateComps) => {
|
||||
setCompositions((comps) => {
|
||||
const updated = updateComps(comps);
|
||||
currentcompositionsRef.current = updated;
|
||||
return updated;
|
||||
});
|
||||
}, []);
|
||||
const registerComposition = (0, react_1.useCallback)((comp) => {
|
||||
updateCompositions((comps) => {
|
||||
if (comps.find((c) => c.id === comp.id)) {
|
||||
throw new Error(`Multiple composition with id ${comp.id} are registered.`);
|
||||
}
|
||||
const value = [...comps, comp]
|
||||
.slice()
|
||||
.sort((a, b) => a.nonce - b.nonce);
|
||||
return value;
|
||||
});
|
||||
}, [updateCompositions]);
|
||||
const unregisterComposition = (0, react_1.useCallback)((id) => {
|
||||
setCompositions((comps) => {
|
||||
return comps.filter((c) => c.id !== id);
|
||||
});
|
||||
}, []);
|
||||
const registerFolder = (0, react_1.useCallback)((name, parent) => {
|
||||
setFolders((prevFolders) => {
|
||||
return [
|
||||
...prevFolders,
|
||||
{
|
||||
name,
|
||||
parent,
|
||||
},
|
||||
];
|
||||
});
|
||||
}, []);
|
||||
const unregisterFolder = (0, react_1.useCallback)((name, parent) => {
|
||||
setFolders((prevFolders) => {
|
||||
return prevFolders.filter((p) => !(p.name === name && p.parent === parent));
|
||||
});
|
||||
}, []);
|
||||
(0, react_1.useImperativeHandle)(CompositionManager_1.compositionsRef, () => {
|
||||
return {
|
||||
getCompositions: () => currentcompositionsRef.current,
|
||||
};
|
||||
}, []);
|
||||
const updateCompositionDefaultProps = (0, react_1.useCallback)((id, newDefaultProps) => {
|
||||
setCompositions((comps) => {
|
||||
const updated = comps.map((c) => {
|
||||
if (c.id === id) {
|
||||
return {
|
||||
...c,
|
||||
defaultProps: newDefaultProps,
|
||||
};
|
||||
}
|
||||
return c;
|
||||
});
|
||||
return updated;
|
||||
});
|
||||
}, []);
|
||||
const compositionManagerSetters = (0, react_1.useMemo)(() => {
|
||||
return {
|
||||
registerComposition,
|
||||
unregisterComposition,
|
||||
registerFolder,
|
||||
unregisterFolder,
|
||||
setCanvasContent,
|
||||
updateCompositionDefaultProps,
|
||||
onlyRenderComposition,
|
||||
};
|
||||
}, [
|
||||
registerComposition,
|
||||
registerFolder,
|
||||
unregisterComposition,
|
||||
unregisterFolder,
|
||||
updateCompositionDefaultProps,
|
||||
onlyRenderComposition,
|
||||
]);
|
||||
const compositionManagerContextValue = (0, react_1.useMemo)(() => {
|
||||
return {
|
||||
compositions,
|
||||
folders,
|
||||
currentCompositionMetadata,
|
||||
canvasContent,
|
||||
};
|
||||
}, [compositions, folders, currentCompositionMetadata, canvasContent]);
|
||||
return ((0, jsx_runtime_1.jsx)(CompositionManagerContext_1.CompositionManager.Provider, { value: compositionManagerContextValue, children: (0, jsx_runtime_1.jsx)(CompositionManagerContext_1.CompositionSetters.Provider, { value: compositionManagerSetters, children: children }) }));
|
||||
};
|
||||
exports.CompositionManagerProvider = CompositionManagerProvider;
|
||||
Reference in New Issue
Block a user