@mui/x-data-grid-premium
Version:
The Premium plan edition of the data grid component (MUI X).
37 lines (34 loc) • 1.53 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import { useThemeProps } from '@mui/material/styles';
import { DATA_GRID_PRO_PROPS_DEFAULT_VALUES, DATA_GRID_DEFAULT_SLOTS_COMPONENTS, GRID_DEFAULT_LOCALE_TEXT } from '@mui/x-data-grid-pro';
/**
* The default values of `DataGridPremiumPropsWithDefaultValue` to inject in the props of DataGridPremium.
*/
export const DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES = _extends({}, DATA_GRID_PRO_PROPS_DEFAULT_VALUES, {
disableRowGrouping: false,
rowGroupingColumnMode: 'single'
});
export const useDataGridPremiumProps = inProps => {
const themedProps = useThemeProps({
props: inProps,
name: 'MuiDataGrid'
});
const localeText = React.useMemo(() => _extends({}, GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
const components = React.useMemo(() => {
const overrides = themedProps.components;
if (!overrides) {
return _extends({}, DATA_GRID_DEFAULT_SLOTS_COMPONENTS);
}
const mergedComponents = {};
Object.entries(DATA_GRID_DEFAULT_SLOTS_COMPONENTS).forEach(([key, defaultComponent]) => {
mergedComponents[key] = overrides[key] === undefined ? defaultComponent : overrides[key];
});
return mergedComponents;
}, [themedProps.components]);
return React.useMemo(() => _extends({}, DATA_GRID_PREMIUM_PROPS_DEFAULT_VALUES, themedProps, {
localeText,
components,
signature: 'DataGridPremium'
}), [themedProps, localeText, components]);
};