UNPKG

@mui/x-date-pickers

Version:

The community edition of the Date and Time Picker components (MUI X).

40 lines (39 loc) 1.79 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFieldSectionContainerProps = useFieldSectionContainerProps; var React = _interopRequireWildcard(require("react")); var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback")); /** * Generate the props to pass to the container element of each section of the field. * It is not used by the non-accessible DOM structure (with an <input /> element for editing). * It should be used in the MUI accessible DOM structure and the Base UI implementation. * @param {UseFieldRootPropsParameters} parameters The parameters of the hook. * @returns {UseFieldRootPropsReturnValue} The props to forward to the container element of each section of the field. */ function useFieldSectionContainerProps(parameters) { const { stateResponse: { // Methods to update the states setSelectedSections }, internalPropsWithDefaults: { disabled = false } } = parameters; const createHandleClick = (0, _useEventCallback.default)(sectionIndex => event => { // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection. // We avoid this by checking if the call to this function is actually intended, or a side effect. if (disabled || event.isDefaultPrevented()) { return; } setSelectedSections(sectionIndex); }); return React.useCallback(sectionIndex => ({ 'data-sectionindex': sectionIndex, onClick: createHandleClick(sectionIndex) }), [createHandleClick]); }