Skip to content

Commit 8fe5bab

Browse files
committed
Adds secondary form with age and email fields to OmegaForm story
1 parent 29037cc commit 8fe5bab

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

packages/vue-components/stories/OmegaForm/Tanstack.vue

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,65 @@
4242
<pre>{{ errors }}</pre>
4343
</div>
4444
</form>
45+
<h1>Secondary Form</h1>
46+
<form @submit="form2.handleSubmit">
47+
<div>
48+
<label for="age">Age</label>
49+
<form2.Field
50+
id="age"
51+
name="age"
52+
type="number"
53+
:validators="{
54+
onChange: S.standardSchemaV1(schema.fields['age']),
55+
}"
56+
>
57+
<template #default="{ field }">
58+
<div class="field">
59+
<input
60+
:value="field.state.value"
61+
type="number"
62+
@input="
63+
e =>
64+
field.handleChange(
65+
Number((e.target as HTMLInputElement).value),
66+
)
67+
"
68+
/>
69+
<em v-if="field.state.meta.errors.length > 0" role="alert">
70+
{{ field.state.meta.errors.map(e => e?.message).join(", ") }}
71+
</em>
72+
</div>
73+
</template>
74+
</form2.Field>
75+
<label for="email">Email</label>
76+
<form2.Field
77+
id="email"
78+
name="email"
79+
type="text"
80+
:validators="{
81+
onBlur: S.standardSchemaV1(schema.fields['email']),
82+
}"
83+
>
84+
<template #default="{ field }">
85+
<div class="field">
86+
<input
87+
:value="field.state.value"
88+
@blur="field.handleBlur"
89+
@input="
90+
e => field.handleChange((e.target as HTMLInputElement).value)
91+
"
92+
/>
93+
<em v-if="field.state.meta.errors.length > 0" role="alert">
94+
{{ field.state.meta.errors.map(e => e?.message).join(", ") }}
95+
</em>
96+
</div>
97+
</template>
98+
</form2.Field>
99+
</div>
100+
<div>
101+
<pre>{{ errors }}</pre>
102+
</div>
103+
</form>
45104
</template>
46105

47106
<script setup lang="ts">
@@ -68,6 +127,16 @@ const form = useForm({
68127
},
69128
})
70129
130+
const form2 = useForm({
131+
defaultValues: {
132+
age: 1,
133+
134+
},
135+
onSubmit: async ({ value }) => {
136+
console.log(value)
137+
},
138+
})
139+
71140
const errors = form.useStore(v => v.errors)
72141
</script>
73142

0 commit comments

Comments
 (0)