UNPKG

@mui/x-data-grid

Version:

The community edition of the data grid component (MUI X).

55 lines 2.21 kB
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 };