diff --git a/playground/app/components/FormElementsExample.vue b/playground/app/components/FormElementsExample.vue index d9a2e1ed..473625fc 100644 --- a/playground/app/components/FormElementsExample.vue +++ b/playground/app/components/FormElementsExample.vue @@ -95,11 +95,11 @@ function onSubmit(event: FormSubmitEvent) {
- + Submit - + Clear
diff --git a/src/runtime/components/Form.vue b/src/runtime/components/Form.vue index 8cdd7fd0..9437c0e6 100644 --- a/src/runtime/components/Form.vue +++ b/src/runtime/components/Form.vue @@ -46,7 +46,7 @@ const props = withDefaults(defineProps>(), { const emits = defineEmits>() defineSlots() -const formId = props.id ?? useId() +const formId = props.id ?? useId() as string const bus = useEventBus(`form-${formId}`) const parentBus = inject( diff --git a/src/runtime/components/FormField.vue b/src/runtime/components/FormField.vue index 6b0d587d..30ed69f3 100644 --- a/src/runtime/components/FormField.vue +++ b/src/runtime/components/FormField.vue @@ -39,7 +39,7 @@ export interface FormFieldSlots { import { computed, ref, inject, provide, type Ref, useId } from 'vue' import { Label } from 'radix-vue' import { formFieldInjectionKey } from '../composables/useFormField' -import type { FormError } from '../types/form' +import type { FormError, FormFieldInjectedOptions } from '../types/form' const props = defineProps() const slots = defineSlots() @@ -51,12 +51,7 @@ const ui = computed(() => formField({ const formErrors = inject | null>('form-errors', null) -const error = computed(() => { - return (props.error && typeof props.error === 'string') - || typeof props.error === 'boolean' - ? props.error - : formErrors?.value?.find(error => error.name === props.name)?.message -}) +const error = computed(() => props.error || formErrors?.value?.find(error => error.name === props.name)?.message) const id = ref(useId()) @@ -67,7 +62,7 @@ provide(formFieldInjectionKey, computed(() => ({ size: props.size, eagerValidation: props.eagerValidation, validateOnInputDelay: props.validateOnInputDelay -}))) +}) as FormFieldInjectedOptions))