UNPKG

@material-ui/lab

Version:

Material-UI Lab - Incubator for Material-UI React components.

56 lines (55 loc) 2.03 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import * as React from 'react'; import PropTypes from 'prop-types'; import { onSpaceOrEnter } from './utils'; import { useUtils } from './hooks/useUtils'; import { getDisplayDate, getTextFieldAriaText } from './text-field-helper'; // make `variant` optional export var PureDateInput = function PureDateInput(_ref) { var containerRef = _ref.containerRef, disabled = _ref.disabled, forwardedRef = _ref.forwardedRef, _ref$getOpenDialogAri = _ref.getOpenDialogAriaText, getOpenDialogAriaText = _ref$getOpenDialogAri === void 0 ? getTextFieldAriaText : _ref$getOpenDialogAri, inputFormat = _ref.inputFormat, InputProps = _ref.InputProps, label = _ref.label, onOpen = _ref.openPicker, rawValue = _ref.rawValue, renderInput = _ref.renderInput, _ref$TextFieldProps = _ref.TextFieldProps, TextFieldProps = _ref$TextFieldProps === void 0 ? {} : _ref$TextFieldProps, validationError = _ref.validationError; var utils = useUtils(); var PureDateInputProps = React.useMemo(function () { return _extends({}, InputProps, { readOnly: true }); }, [InputProps]); var inputValue = getDisplayDate(utils, rawValue, inputFormat); return renderInput(_extends({ label: label, disabled: disabled, ref: containerRef, inputRef: forwardedRef, error: validationError, InputProps: PureDateInputProps, inputProps: { disabled: disabled, readOnly: true, 'aria-readonly': true, 'aria-label': getOpenDialogAriaText(rawValue, utils), value: inputValue, onClick: onOpen, onKeyDown: onSpaceOrEnter(onOpen) } }, TextFieldProps)); }; PureDateInput.propTypes = { acceptRegex: PropTypes.instanceOf(RegExp), getOpenDialogAriaText: PropTypes.func, mask: PropTypes.string, OpenPickerButtonProps: PropTypes.object, openPickerIcon: PropTypes.node, renderInput: PropTypes.func.isRequired, rifmFormatter: PropTypes.func };