@kobalte/core
Version:
Unstyled components and primitives for building accessible web apps and design systems with SolidJS.
33 lines (30 loc) • 1.02 kB
JavaScript
import { useFormControlContext } from './YKGT7A57.js';
import { Polymorphic } from './6Y7B2NEO.js';
import { createComponent, mergeProps } from 'solid-js/web';
import { mergeDefaultProps } from '@kobalte/utils';
import { splitProps, createEffect, onCleanup, Show } from 'solid-js';
function FormControlErrorMessage(props) {
const context = useFormControlContext();
const mergedProps = mergeDefaultProps({
id: context.generateId("error-message")
}, props);
const [local, others] = splitProps(mergedProps, ["forceMount"]);
const isInvalid = () => context.validationState() === "invalid";
createEffect(() => {
if (!isInvalid()) {
return;
}
onCleanup(context.registerErrorMessage(others.id));
});
return createComponent(Show, {
get when() {
return local.forceMount || isInvalid();
},
get children() {
return createComponent(Polymorphic, mergeProps({
as: "div"
}, () => context.dataset(), others));
}
});
}
export { FormControlErrorMessage };