UNPKG

@mui/x-date-pickers-pro

Version:

The Pro plan edition of the MUI X Date and Time Picker components.

44 lines 1.85 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import useSlotProps from '@mui/utils/useSlotProps'; import { PickersTextField } from '@mui/x-date-pickers/PickersTextField'; import { usePickerTranslations } from '@mui/x-date-pickers/hooks'; import { PickerFieldUIContext, useNullablePickerContext, mergeSlotProps } from '@mui/x-date-pickers/internals'; import { useNullablePickerRangePositionContext } from "../../hooks/useNullablePickerRangePositionContext.js"; export function useTextFieldProps({ slotProps, ownerState, position, allowTriggerShifting }) { const pickerContext = useNullablePickerContext(); const translations = usePickerTranslations(); const pickerFieldUIContext = React.useContext(PickerFieldUIContext); const rangePositionContext = useNullablePickerRangePositionContext(); const textFieldProps = useSlotProps({ elementType: PickersTextField, externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField), additionalProps: { // TODO: Decide if we also want to set the default labels on standalone fields. label: pickerContext ? translations[position] : undefined, focused: pickerContext?.open ? rangePositionContext?.rangePosition === position : undefined }, ownerState: _extends({}, ownerState, { position }) }); if (!textFieldProps.InputProps) { textFieldProps.InputProps = {}; } if (pickerContext) { if (!allowTriggerShifting) { if (position === 'start') { textFieldProps.InputProps.ref = pickerContext.triggerRef; } } else if (rangePositionContext?.rangePosition === position) { textFieldProps.InputProps.ref = pickerContext.triggerRef; } } textFieldProps.InputProps['data-multi-input'] = position; return textFieldProps; }