@mui/x-data-grid
Version:
The Community plan edition of the Data Grid components (MUI X).
54 lines (51 loc) • 1.48 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import { useGridApiMethod } from '../../utils/useGridApiMethod';
export const EMPTY_RENDER_CONTEXT = {
firstRowIndex: 0,
lastRowIndex: 0,
firstColumnIndex: 0,
lastColumnIndex: 0
};
export const virtualizationStateInitializer = (state, props) => {
const virtualization = {
enabled: !props.disableVirtualization,
enabledForColumns: true,
renderContext: EMPTY_RENDER_CONTEXT
};
return _extends({}, state, {
virtualization
});
};
export function useGridVirtualization(apiRef, props) {
/*
* API METHODS
*/
const setVirtualization = enabled => {
apiRef.current.setState(state => _extends({}, state, {
virtualization: _extends({}, state.virtualization, {
enabled
})
}));
};
const setColumnVirtualization = enabled => {
apiRef.current.setState(state => _extends({}, state, {
virtualization: _extends({}, state.virtualization, {
enabledForColumns: enabled
})
}));
};
const api = {
unstable_setVirtualization: setVirtualization,
unstable_setColumnVirtualization: setColumnVirtualization
};
useGridApiMethod(apiRef, api, 'public');
/*
* EFFECTS
*/
/* eslint-disable react-hooks/exhaustive-deps */
React.useEffect(() => {
setVirtualization(!props.disableVirtualization);
}, [props.disableVirtualization]);
/* eslint-enable react-hooks/exhaustive-deps */
}