Skip to content

Commit

Permalink
feat(VForm): unref values in slot props
Browse files Browse the repository at this point in the history
closes #18355
  • Loading branch information
KaelWD committed Feb 5, 2025
1 parent 0a86a61 commit f92ae7a
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions packages/vuetify/src/components/VForm/VForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,25 @@ import { ref } from 'vue'
import { genericComponent, propsFactory, useRender } from '@/util'

// Types
import type { SubmitEventPromise } from '@/composables/form'
import type { FieldValidationResult, FormField, FormValidationResult, SubmitEventPromise } from '@/composables/form'

export const makeVFormProps = propsFactory({
...makeComponentProps(),
...makeFormProps(),
}, 'VForm')

type VFormSlots = {
default: ReturnType<typeof createForm>
default: {
errors: FieldValidationResult[]
isDisabled: boolean
isReadonly: boolean
isValidating: boolean
isValid: boolean | null
items: FormField[]
validate: () => Promise<FormValidationResult>
reset: () => void
resetValidation: () => void
}
}

export const VForm = genericComponent<VFormSlots>()({
Expand Down Expand Up @@ -71,7 +81,17 @@ export const VForm = genericComponent<VFormSlots>()({
onReset={ onReset }
onSubmit={ onSubmit }
>
{ slots.default?.(form) }
{ slots.default?.({
errors: form.errors.value,
isDisabled: form.isDisabled.value,
isReadonly: form.isReadonly.value,
isValidating: form.isValidating.value,
isValid: form.isValid.value,
items: form.items.value,
validate: form.validate,
reset: form.reset,
resetValidation: form.resetValidation,
})}
</form>
)))

Expand Down

0 comments on commit f92ae7a

Please sign in to comment.