@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
JavaScript
'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 = {
[]: disabled,
[]: error,
[]: focused,
[]: Boolean(formControl),
[]: className
};
const inputStateClasses = {
[]: 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);
}