Skip to content

Commit 2840cd1

Browse files
committed
feat(FieldSwitch): validation, hints and isVisible
1 parent bf26956 commit 2840cd1

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/fields/core/FieldSwitch.vue

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type { SwitchField, FieldPropRefs, FieldProps } from '@/resources/types/f
1717
import {
1818
useFieldEmits,
1919
useFieldAttributes,
20+
useFieldValidate,
2021
useFormModel
2122
} from '@/composables'
2223
@@ -26,10 +27,21 @@ const emits = defineEmits(useFieldEmits())
2627
2728
const { field, model }: FieldPropRefs<SwitchField> = toRefs(props)
2829
29-
const { isDisabled } = useFieldAttributes(model.value, field.value)
30+
const { isDisabled, isVisible, hint } = useFieldAttributes(model.value, field.value)
3031
const { currentModelValue } = useFormModel(model.value, field.value)
32+
const { errors, validate } = useFieldValidate(model.value, field.value)
3133
3234
const onFieldValueChanged = (event: Event) => {
33-
emits('onInput', (event.target as HTMLInputElement).checked)
35+
const target = event.target as HTMLInputElement
36+
emits('onInput', target.checked)
37+
validate(target.checked).then(validationErrors => {
38+
emits('validated',
39+
validationErrors.length === 0,
40+
validationErrors,
41+
field.value
42+
)
43+
})
3444
}
35-
</script>
45+
46+
defineExpose({ isVisible, hint, errors })
47+
</script>

0 commit comments

Comments
 (0)