UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the MUI X Data Grid components.

72 lines (71 loc) 2.73 kB
"use strict"; 'use client'; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridPanelContext = void 0; exports.GridPanelContextProvider = GridPanelContextProvider; exports.useGridPanelContext = useGridPanelContext; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage")); var React = _interopRequireWildcard(require("react")); var _jsxRuntime = require("react/jsx-runtime"); const GridPanelContext = exports.GridPanelContext = /*#__PURE__*/React.createContext(undefined); if (process.env.NODE_ENV !== "production") GridPanelContext.displayName = "GridPanelContext"; function useGridPanelContext() { const context = React.useContext(GridPanelContext); if (context === undefined) { throw new Error(process.env.NODE_ENV !== "production" ? 'MUI X: Missing context.' : (0, _formatErrorMessage2.default)(61)); } return context; } function GridPanelContextProvider({ children }) { const [triggerElements, setTriggerElements] = React.useState({ columnsPanel: null, filterPanel: null, aiAssistantPanel: null }); const updateTriggerElement = React.useCallback((key, instance) => { setTriggerElements(prev => { if (prev[key] === instance) { return prev; } return (0, _extends2.default)({}, prev, { [key]: instance }); }); }, []); const setColumnsPanelTrigger = React.useCallback(instance => { updateTriggerElement('columnsPanel', instance); }, [updateTriggerElement]); const setFilterPanelTrigger = React.useCallback(instance => { updateTriggerElement('filterPanel', instance); }, [updateTriggerElement]); const setAiAssistantPanelTrigger = React.useCallback(instance => { updateTriggerElement('aiAssistantPanel', instance); }, [updateTriggerElement]); const value = React.useMemo(() => ({ triggers: { columnsPanel: { element: triggerElements.columnsPanel, setRef: setColumnsPanelTrigger }, filterPanel: { element: triggerElements.filterPanel, setRef: setFilterPanelTrigger }, aiAssistantPanel: { element: triggerElements.aiAssistantPanel, setRef: setAiAssistantPanelTrigger } } }), [triggerElements, setColumnsPanelTrigger, setFilterPanelTrigger, setAiAssistantPanelTrigger]); return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridPanelContext.Provider, { value: value, children: children }); }