UNPKG

@mui/joy

Version:

Joy UI is an open-source React component library that implements MUI's own design principles. It's comprehensive and can be used in production out of the box.

90 lines (89 loc) 2.35 kB
'use client'; import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["aria-describedby", "aria-label", "aria-labelledby", "autoComplete", "autoFocus", "className", "defaultValue", "disabled", "disabledInProp", "error", "id", "name", "onClick", "onChange", "onKeyDown", "onKeyUp", "onFocus", "onBlur", "placeholder", "readOnly", "required", "type", "value"]; import * as React from 'react'; import { useInput } from '@mui/base/useInput'; import FormControlContext from '../FormControl/FormControlContext'; export default function useForwardedInput(props, classes) { const formControl = React.useContext(FormControlContext); const { 'aria-describedby': ariaDescribedby, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, autoComplete, autoFocus, className, defaultValue, disabled: disabledProp, disabledInProp, error: errorProp, id, name, onClick, onChange, onKeyDown, onKeyUp, onFocus, onBlur, placeholder, readOnly, required, type, value } = props, other = _objectWithoutPropertiesLoose(props, _excluded); const { getRootProps, getInputProps, focused, error, disabled } = useInput({ disabled: disabledInProp ?? formControl?.disabled ?? disabledProp, defaultValue, error: errorProp, onBlur, onClick, onChange, onFocus, required: required ?? formControl?.required, value }); const rootStateClasses = { [classes.disabled]: disabled, [classes.error]: error, [classes.focused]: focused, [classes.formControl]: Boolean(formControl), [className]: className }; const inputStateClasses = { [classes.disabled]: disabled }; const propsToForward = { 'aria-describedby': ariaDescribedby, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, autoComplete, autoFocus, disabled, id, onKeyDown, onKeyUp, name, placeholder, readOnly, type }; return _extends({ formControl, propsToForward, rootStateClasses, inputStateClasses, getRootProps, getInputProps, focused, error, disabled }, other); }