72 lines
2.7 KiB
JavaScript
72 lines
2.7 KiB
JavaScript
"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
|
|
});
|
|
} |