@talend/react-forms
Version:
React forms library based on json schema form.
50 lines • 1.45 kB
JavaScript
import { useController, useFormContext } from 'react-hook-form';
import PropTypes from 'prop-types';
import { Form } from '@talend/design-system';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
function RHFSelect({
rules = {},
name = '',
defaultValue,
options,
...rest
}) {
var _fieldState$error, _fieldState$error2;
const {
control
} = useFormContext();
const {
field,
fieldState
} = useController({
control,
name,
rules,
defaultValue
});
return /*#__PURE__*/_jsxs(Form.Select, {
hasError: !!((_fieldState$error = fieldState.error) !== null && _fieldState$error !== void 0 && _fieldState$error.message),
description: (_fieldState$error2 = fieldState.error) === null || _fieldState$error2 === void 0 ? void 0 : _fieldState$error2.message,
...field,
...rest,
children: [rest.required && !rest.placeholder && /*#__PURE__*/_jsx("option", {
value: ""
}), options && options.map(option => {
return /*#__PURE__*/_jsx("option", {
value: option.value,
selected: rest.value === option.value,
children: option.name
}, option.value);
})]
});
}
if (process.env.NODE_ENV !== 'production') {
RHFSelect.propTypes = {
rules: PropTypes.object,
name: PropTypes.string,
defaultValue: PropTypes.string,
options: PropTypes.array
};
}
export default RHFSelect;
//# sourceMappingURL=RHFSelect.component.js.map