UNPKG

@hitachivantara/uikit-react-pentaho

Version:
47 lines (46 loc) 1.29 kB
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 };