UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

82 lines (81 loc) 3.14 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useGridSidebar = exports.sidebarStateInitializer = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _internals = require("@mui/x-data-grid-pro/internals"); var _gridSidebarSelector = require("./gridSidebarSelector"); const sidebarStateInitializer = (state, props) => (0, _extends2.default)({}, state, { sidebar: props.initialState?.sidebar ?? { open: false } }); exports.sidebarStateInitializer = sidebarStateInitializer; const useGridSidebar = (apiRef, props) => { const hideSidebar = React.useCallback(() => { apiRef.current.setState(state => { if (!state.sidebar.open || !state.sidebar.value) { return state; } apiRef.current.publishEvent('sidebarClose', { value: state.sidebar.value }); return (0, _extends2.default)({}, state, { sidebar: { open: false } }); }); }, [apiRef]); const showSidebar = React.useCallback((newValue, sidebarId, labelId) => { apiRef.current.setState(state => (0, _extends2.default)({}, state, { sidebar: (0, _extends2.default)({}, state.sidebar, { open: true, value: newValue, sidebarId, labelId }) })); apiRef.current.publishEvent('sidebarOpen', { value: newValue }); }, [apiRef]); (0, _internals.useGridApiMethod)(apiRef, { showSidebar, hideSidebar }, 'public'); const stateExportPreProcessing = React.useCallback((prevState, context) => { const sidebarToExport = (0, _gridSidebarSelector.gridSidebarStateSelector)(apiRef); const shouldExportSidebar = // Always export if the `exportOnlyDirtyModels` property is not activated !context.exportOnlyDirtyModels || // Always export if the sidebar was initialized props.initialState?.sidebar != null || // Always export if the sidebar is opened sidebarToExport.open; if (!shouldExportSidebar) { return prevState; } return (0, _extends2.default)({}, prevState, { sidebar: sidebarToExport }); }, [apiRef, props.initialState?.sidebar]); const stateRestorePreProcessing = React.useCallback((params, context) => { const sidebar = context.stateToRestore.sidebar; if (sidebar != null) { apiRef.current.setState(state => (0, _extends2.default)({}, state, { sidebar })); } return params; }, [apiRef]); (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing); (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing); (0, _internals.useGridEventPriority)(apiRef, 'sidebarClose', props.onSidebarClose); (0, _internals.useGridEventPriority)(apiRef, 'sidebarOpen', props.onSidebarOpen); }; exports.useGridSidebar = useGridSidebar;