@grafana/ui
Version:
Grafana Components Library
46 lines (41 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var css = require('@emotion/css');
var React = require('react');
var reactHookForm = require('react-hook-form');
;
function Form({
defaultValues,
onSubmit,
validateOnMount = false,
validateFieldsOnMount,
children,
validateOn = "onSubmit",
maxWidth = 600,
...htmlProps
}) {
const { handleSubmit, trigger, formState, ...rest } = reactHookForm.useForm({
mode: validateOn,
defaultValues
});
React.useEffect(() => {
if (validateOnMount) {
trigger(validateFieldsOnMount);
}
}, [trigger, validateFieldsOnMount, validateOnMount]);
return /* @__PURE__ */ jsxRuntime.jsx(
"form",
{
className: css.css({
maxWidth: maxWidth !== "none" ? maxWidth + "px" : maxWidth,
width: "100%"
}),
onSubmit: handleSubmit(onSubmit),
...htmlProps,
children: children({ errors: formState.errors, formState, trigger, ...rest })
}
);
}
exports.Form = Form;
//# sourceMappingURL=Form.cjs.map