refactor: change setValues to setFieldValue for better validation

This commit is contained in:
romanhrynevych 2024-05-12 22:37:21 +03:00
parent b20a45552a
commit 1a2d7e13d8
8 changed files with 21 additions and 50 deletions

View File

@ -414,9 +414,7 @@ const form = useForm({
validationSchema: toTypedSchema(schema), validationSchema: toTypedSchema(schema),
}) })
form.setValues({ form.setFieldValue('username', 'bar')
username: 'foo'
})
</script> </script>
<template> <template>

View File

@ -84,7 +84,7 @@ async function onSubmit(values: any) {
</p> </p>
</div> </div>
<Separator /> <Separator />
<Form v-slot="{ setValues }" :validation-schema="accountFormSchema" class="space-y-8" @submit="onSubmit"> <Form v-slot="{ setFieldValue }" :validation-schema="accountFormSchema" class="space-y-8" @submit="onSubmit">
<FormField v-slot="{ componentField }" name="name"> <FormField v-slot="{ componentField }" name="name">
<FormItem> <FormItem>
<FormLabel>Name</FormLabel> <FormLabel>Name</FormLabel>
@ -126,15 +126,11 @@ async function onSubmit(values: any) {
@update:model-value="(v) => { @update:model-value="(v) => {
if (v) { if (v) {
dateValue = v dateValue = v
setValues({ setFieldValue('dob', toDate(v).toISOString())
dob: toDate(v).toISOString(),
}, false)
} }
else { else {
dateValue = undefined dateValue = undefined
setValues({ setFieldValue('dob', undefined)
dob: undefined,
}, false)
} }
}" }"
/> />
@ -178,9 +174,7 @@ async function onSubmit(values: any) {
<CommandItem <CommandItem
v-for="language in languages" :key="language.value" :value="language.label" v-for="language in languages" :key="language.value" :value="language.label"
@select="() => { @select="() => {
setValues({ setFieldValue('language', language.value)
language: language.value,
}, false)
open = false open = false
}" }"
> >

View File

@ -32,7 +32,7 @@ const formSchema = toTypedSchema(z.object({
const placeholder = ref() const placeholder = ref()
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
}) })
@ -79,14 +79,10 @@ const onSubmit = handleSubmit((values) => {
:max-value="today(getLocalTimeZone())" :max-value="today(getLocalTimeZone())"
@update:model-value="(v) => { @update:model-value="(v) => {
if (v) { if (v) {
setValues({ setFieldValue('dob', v.toString())
dob: v.toString(),
})
} }
else { else {
setValues({ setFieldValue('dob', undefined)
dob: '',
})
} }
}" }"
/> />

View File

@ -48,7 +48,7 @@ const formSchema = toTypedSchema(z.object({
}), }),
})) }))
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
}) })
@ -91,9 +91,7 @@ const onSubmit = handleSubmit((values) => {
:key="language.value" :key="language.value"
:value="language.label" :value="language.label"
@select="() => { @select="() => {
setValues({ setFieldValue('language', language.value)
language: language.value,
})
}" }"
> >
<Check <Check

View File

@ -32,7 +32,7 @@ const formSchema = toTypedSchema(z.object({
const placeholder = ref() const placeholder = ref()
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
initialValues: { initialValues: {
@ -82,14 +82,10 @@ const onSubmit = handleSubmit((values) => {
:max-value="today(getLocalTimeZone())" :max-value="today(getLocalTimeZone())"
@update:model-value="(v) => { @update:model-value="(v) => {
if (v) { if (v) {
setValues({ setFieldValue('dob', v.toString())
dob: v.toString(),
})
} }
else { else {
setValues({ setFieldValue('dob', undefined)
dob: '',
})
} }
}" }"

View File

@ -32,7 +32,7 @@ const formSchema = toTypedSchema(z.object({
const placeholder = ref() const placeholder = ref()
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
}) })
@ -79,14 +79,10 @@ const onSubmit = handleSubmit((values) => {
:max-value="today(getLocalTimeZone())" :max-value="today(getLocalTimeZone())"
@update:model-value="(v) => { @update:model-value="(v) => {
if (v) { if (v) {
setValues({ setFieldValue('dob', v.toString())
dob: v.toString(),
})
} }
else { else {
setValues({ setFieldValue('dob', undefined)
dob: '',
})
} }
}" }"
/> />

View File

@ -48,7 +48,7 @@ const formSchema = toTypedSchema(z.object({
}), }),
})) }))
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
initialValues: { initialValues: {
language: '', language: '',
@ -94,9 +94,7 @@ const onSubmit = handleSubmit((values) => {
:key="language.value" :key="language.value"
:value="language.label" :value="language.label"
@select="() => { @select="() => {
setValues({ setFieldValue('language', language.value)
language: language.value,
})
}" }"
> >
{{ language.label }} {{ language.label }}

View File

@ -32,7 +32,7 @@ const formSchema = toTypedSchema(z.object({
const placeholder = ref() const placeholder = ref()
const { handleSubmit, setValues, values } = useForm({ const { handleSubmit, setFieldValue, values } = useForm({
validationSchema: formSchema, validationSchema: formSchema,
initialValues: { initialValues: {
@ -82,16 +82,11 @@ const onSubmit = handleSubmit((values) => {
:max-value="today(getLocalTimeZone())" :max-value="today(getLocalTimeZone())"
@update:model-value="(v) => { @update:model-value="(v) => {
if (v) { if (v) {
setValues({ setFieldValue('dob', v.toString())
dob: v.toString(),
})
} }
else { else {
setValues({ setFieldValue('dob', undefined)
dob: '',
})
} }
}" }"
/> />
</PopoverContent> </PopoverContent>