UNPKG

@remotion/studio

Version:

APIs for interacting with the Remotion Studio

36 lines (35 loc) 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HighestZIndexProvider = exports.HighestZIndexContext = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); exports.HighestZIndexContext = (0, react_1.createContext)({ highestIndex: 0, registerZIndex: () => undefined, unregisterZIndex: () => undefined, }); const HighestZIndexProvider = ({ children }) => { const [zIndexes, setZIndexes] = (0, react_1.useState)([]); const registerZIndex = (0, react_1.useCallback)((newIndex) => { setZIndexes((prev) => [...prev, newIndex]); }, []); const unregisterZIndex = (0, react_1.useCallback)((newIndex) => { setZIndexes((prev) => { const index = prev.indexOf(newIndex); if (index === -1) { throw new Error('did not find z-index ' + newIndex); } return prev.filter((_n, i) => i !== index); }); }, []); const highestIndex = Math.max(...zIndexes); const value = (0, react_1.useMemo)(() => { return { highestIndex, registerZIndex, unregisterZIndex, }; }, [registerZIndex, unregisterZIndex, highestIndex]); return (jsx_runtime_1.jsx(exports.HighestZIndexContext.Provider, { value: value, children: children })); }; exports.HighestZIndexProvider = HighestZIndexProvider;