-
-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathSimpleForm.vue
More file actions
52 lines (50 loc) · 1.46 KB
/
SimpleForm.vue
File metadata and controls
52 lines (50 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<template>
<form.Form :subscribe="['values', 'isDirty']">
<template #default="{ subscribedValues: { values, isDirty } }">
<div>values: {{ values }} {{ isDirty }}</div>
<form.Input
label="asder2"
name="asder2"
>
<template #default="{ field, label, id }">
<label :for="field.name">{{ label }}</label>
<input
:id="id"
v-model="field.state.value"
:name="field.name"
style="border: 1px solid red"
@change="(e: any) => field.handleChange(e.target.value)"
>
</template>
</form.Input>
<form.Input
label="asd"
name="asd"
>
<template #default="{ field, label, id }">
<label :for="field.name">{{ label }}</label>
<input
:id="id"
v-model="field.state.value.a"
:name="field.name"
style="border: 1px solid red"
@change="(e: any) => field.handleChange({ a: e.target.value })"
>
</template>
</form.Input>
<v-btn type="submit">
submit
</v-btn>
</template>
</form.Form>
</template>
<script setup lang="ts">
import { S } from "effect-app"
import { useOmegaForm } from "../../src/components/OmegaForm"
const schema = S.Struct({ asder2: S.String, asd: S.Struct({ a: S.String }) })
const form = useOmegaForm(schema, {
onSubmit: async ({ value }) => {
console.log(value)
}
})
</script>