UNPKG

@mui/x-date-pickers

Version:

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

60 lines (59 loc) 3.1 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFieldInternalPropsWithDefaults = useFieldInternalPropsWithDefaults; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef")); var _useNullablePickerContext = require("../useNullablePickerContext"); var _useNullableFieldPrivateContext = require("../useNullableFieldPrivateContext"); /** * Applies the default values to the field internal props. * This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults. * It is only here to allow the migration to be done in smaller steps. */ function useFieldInternalPropsWithDefaults(parameters) { const { manager: { internal_useApplyDefaultValuesToFieldInternalProps: useApplyDefaultValuesToFieldInternalProps }, internalProps, skipContextFieldRefAssignment } = parameters; const pickerContext = (0, _useNullablePickerContext.useNullablePickerContext)(); const fieldPrivateContext = (0, _useNullableFieldPrivateContext.useNullableFieldPrivateContext)(); const handleFieldRef = (0, _useForkRef.default)(internalProps.unstableFieldRef, skipContextFieldRefAssignment ? null : fieldPrivateContext?.fieldRef); const setValue = pickerContext?.setValue; const handleChangeFromPicker = React.useCallback((newValue, ctx) => { return setValue?.(newValue, { validationError: ctx.validationError, shouldClose: false }); }, [setValue]); const internalPropsWithDefaultsFromContext = React.useMemo(() => { // If one of the context is null, // Then the field is used as a standalone component and the other context will be null as well. if (fieldPrivateContext != null && pickerContext != null) { return (0, _extends2.default)({ value: pickerContext.value, onChange: handleChangeFromPicker, timezone: pickerContext.timezone, disabled: pickerContext.disabled, readOnly: pickerContext.readOnly, autoFocus: pickerContext.autoFocus && !pickerContext.open, focused: pickerContext.open ? true : undefined, format: pickerContext.fieldFormat, formatDensity: fieldPrivateContext.formatDensity, enableAccessibleFieldDOMStructure: fieldPrivateContext.enableAccessibleFieldDOMStructure, selectedSections: fieldPrivateContext.selectedSections, onSelectedSectionsChange: fieldPrivateContext.onSelectedSectionsChange, unstableFieldRef: handleFieldRef }, internalProps); } return internalProps; }, [pickerContext, fieldPrivateContext, internalProps, handleChangeFromPicker, handleFieldRef]); return useApplyDefaultValuesToFieldInternalProps(internalPropsWithDefaultsFromContext); }