@hitachivantara/uikit-react-pentaho
Version:
UI Kit Pentaho React components.
47 lines (46 loc) • 1.29 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { createContext, useState, useCallback, useMemo, useContext } from "react";
const HvCanvasContext = createContext(null);
const HvCanvasProvider = ({
children
}) => {
const [sidePanelOpen, setSidePanelOpen] = useState(false);
const [width, setWidth] = useState(0);
const [sidePanelDragging, setSidePanelDragging] = useState(false);
const handleSidePanelWidth = useCallback((newWidth) => {
setWidth(newWidth);
}, []);
const handleSidePanelOpen = useCallback((open) => {
setSidePanelOpen(open);
}, []);
const handleSidePanelDragging = useCallback((dragging) => {
setSidePanelDragging(dragging);
}, []);
const value = useMemo(
() => ({
sidePanelOpen,
handleSidePanelOpen,
sidePanelWidth: sidePanelOpen ? width : 0,
handleSidePanelWidth,
sidePanelDragging,
handleSidePanelDragging
}),
[
sidePanelOpen,
handleSidePanelOpen,
width,
handleSidePanelWidth,
sidePanelDragging,
handleSidePanelDragging
]
);
return /* @__PURE__ */ jsx(HvCanvasContext.Provider, { value, children });
};
const useCanvasContext = () => {
return useContext(HvCanvasContext);
};
export {
HvCanvasContext,
HvCanvasProvider,
useCanvasContext
};