@mui/x-data-grid
Version:
The community edition of the data grid component (MUI X).
55 lines • 2.21 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import * as React from 'react';
import PropTypes from 'prop-types';
import { GridColumnMenuContainer } from './GridColumnMenuContainer';
import { GridColumnsMenuItem } from './GridColumnsMenuItem';
import { GridFilterMenuItem } from './GridFilterMenuItem';
import { HideGridColMenuItem } from './HideGridColMenuItem';
import { SortGridMenuItems } from './SortGridMenuItems';
import { useGridApiContext } from '../../../hooks/utils/useGridApiContext';
import { jsx as _jsx } from "react/jsx-runtime";
const GridColumnMenu = /*#__PURE__*/React.forwardRef(function GridColumnMenu(props, ref) {
const {
hideMenu,
currentColumn
} = props;
const apiRef = useGridApiContext();
const defaultButtons = [/*#__PURE__*/_jsx(SortGridMenuItems, {
onClick: hideMenu,
column: currentColumn
}),
/*#__PURE__*/
// TODO update types to allow `onClick` and `column` to be optional
_jsx(GridFilterMenuItem, {
onClick: hideMenu,
column: currentColumn
}), /*#__PURE__*/_jsx(HideGridColMenuItem, {
onClick: hideMenu,
column: currentColumn
}), /*#__PURE__*/_jsx(GridColumnsMenuItem, {
onClick: hideMenu,
column: currentColumn
})];
const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('columnMenu', defaultButtons, currentColumn);
return /*#__PURE__*/_jsx(GridColumnMenuContainer, _extends({
ref: ref
}, props, {
children: preProcessedButtons.map((button, index) => /*#__PURE__*/React.cloneElement(button, {
key: index,
onClick: hideMenu,
column: currentColumn
}))
}));
});
process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes = {
// ----------------------------- Warning --------------------------------
// | These PropTypes are generated from the TypeScript type definitions |
// | To update them edit the TypeScript types and run "yarn proptypes" |
// ----------------------------------------------------------------------
currentColumn: PropTypes.object.isRequired,
hideMenu: PropTypes.func.isRequired,
id: PropTypes.string,
labelledby: PropTypes.string,
open: PropTypes.bool.isRequired
} : void 0;
export { GridColumnMenu };