Skip to content

Commit 4dc9abd

Browse files
update examples and slots section
1 parent 87eb372 commit 4dc9abd

File tree

2 files changed

+31
-31
lines changed

2 files changed

+31
-31
lines changed

src/documentation/components/examples/FieldSlotExample.vue

+19-29
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,35 @@
44
:pages="pages"
55
@submit="submitForm"
66
>
7-
<template #[`field.foo`]="{ errorMessage, field, blur, change, input, FieldLabel }">
7+
<template #[`field.foo`]="props">
88
<v-text-field
9-
v-model="answers.foo"
10-
v-bind="field"
11-
:error="errorMessage"
12-
:error-messages="errorMessage"
13-
@blur="blur"
14-
@change="change"
15-
@input="input"
9+
v-bind="props.field"
10+
@blur="props.blur()"
11+
@change="props.change()"
12+
@input="props.input()"
13+
@update:modelValue="props.onUpdate($event)"
1614
>
1715
<template #label>
1816
<component
19-
:is="FieldLabel"
20-
:label="field.label"
21-
:required="!!field.required"
17+
:is="props.FieldLabel"
18+
:label="props.field.label"
2219
/>
2320
</template>
2421
</v-text-field>
2522
</template>
2623

2724
<template #[`field.bar`]="props">
2825
<v-text-field
29-
v-model="answers.bar"
3026
v-bind="props.field"
31-
:error="props.errorMessage"
32-
:error-messages="props.errorMessage"
3327
@blur="props.blur()"
3428
@change="props.change()"
3529
@input="props.input()"
30+
@update:modelValue="props.onUpdate($event)"
3631
>
3732
<template #label>
3833
<component
3934
:is="props.FieldLabel"
4035
:label="props.field.label"
41-
:required="!!props.field.required"
4236
/>
4337
</template>
4438
</v-text-field>
@@ -91,35 +85,31 @@ const templateCode = `<template>
9185
title="Field Slots"
9286
@submit="submitForm"
9387
>
94-
<template #[\`field.foo\`]="{ errorMessage, field, blur, change, input, FieldLabel }">
88+
<template #[\`field.foo\`]="props">
9589
<v-text-field
96-
v-model="answers.foo"
97-
v-bind="field"
98-
:error="errorMessage"
99-
:error-messages="errorMessage"
100-
@blur="blur"
101-
@change="change"
102-
@input="input"
90+
v-bind="props.field"
91+
@blur="props.blur()"
92+
@change="props.change()"
93+
@input="props.input()"
94+
@update:modelValue="props.onUpdate($event)"
10395
>
10496
<template #label>
10597
<component
106-
:is="FieldLabel"
107-
:label="field.label"
108-
:required="!!field.required"
98+
:is="props.FieldLabel"
99+
:label="props.field.label"
100+
:required="!!props.field.required"
109101
/>
110102
</template>
111103
</v-text-field>
112104
</template>
113105
114106
<template #[\`field.bar\`]="props">
115107
<v-text-field
116-
v-model="answers.bar"
117108
v-bind="props.field"
118-
:error="props.errorMessage"
119-
:error-messages="props.errorMessage"
120109
@blur="props.blur()"
121110
@change="props.change()"
122111
@input="props.input()"
112+
@update:modelValue="props.onUpdate($event)"
123113
>
124114
<template #label>
125115
<component

src/documentation/sections/SlotsSection.vue

+12-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@
4040
>[`field.${string}`]</a>
4141
</span>
4242
</td>
43-
<td>
44-
Slot that is used for adding your own fields
43+
<td class="compact">
44+
Slot for adding custom fields. Ensure to include the <code class="ic">onUpdate($event)</code> event
45+
listener so the form can detect and handle updates properly. Refer to the <a
46+
href="#examples-field-slots"
47+
>Field Slot</a> example for usage.
4548
</td>
4649
</tr>
4750
<tr>
@@ -86,6 +89,9 @@ const displaySlotsCode = `{
8689
change: () => void,
8790
input: () => void,
8891
92+
// Updating the model value
93+
onUpdate: (value: any) => void,
94+
8995
// Internal FieldLabel component
9096
FieldLabel: Component
9197
}`;
@@ -101,6 +107,10 @@ const displaySlotsCode = `{
101107
> div {
102108
padding: 0.5rem 0 !important;
103109
}
110+
111+
&.compact {
112+
line-height: 1.4 !important;
113+
}
104114
}
105115
}
106116
</style>

0 commit comments

Comments
 (0)