@mui/x-date-pickers
Version:
The community edition of the MUI X Date and Time Picker components.
38 lines (37 loc) • 1.63 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useFieldSectionContainerProps = useFieldSectionContainerProps;
var React = _interopRequireWildcard(require("react"));
/**
* 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 = React.useCallback(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);
}, [disabled, setSelectedSections]);
return React.useCallback(sectionIndex => ({
'data-sectionindex': sectionIndex,
onClick: createHandleClick(sectionIndex)
}), [createHandleClick]);
}
;