1.8 KiB
1.8 KiB
useFormErrors Composable
Composable untuk menangani form validation errors seperti Laravel. Mengkonversi ZodError menjadi format yang mudah digunakan di template.
Penggunaan
Basic Usage
// Di component parent (entry.vue)
const { errors, setFromZodError, clearErrors } = useFormErrors()
// Validasi dengan Zod
const result = schema.safeParse(data.value)
if (!result.success) {
setFromZodError(result.error)
return
}
Di Template
<!-- Pass errors ke form component -->
<AppDivisonEntryForm v-model="data" :errors="errors" />
Di Form Component
<script setup>
import type { FormErrors } from '~/composables/useFormErrors'
const props = defineProps<{
modelValue: any
errors?: FormErrors
}>()
</script>
<template>
<!-- Setiap Field harus memiliki id yang sesuai dengan field name -->
<Field id="name" :errors="errors">
<Input v-model="data.name" />
</Field>
</template>
API Reference
Methods
setFromZodError(zodError)- Set errors dari ZodErrorsetErrors(errors)- Set errors manualsetError(field, message)- Set error untuk field tertentuclearError(field)- Hapus error untuk field tertentuclearErrors()- Hapus semua errorshasError(field)- Cek apakah ada error untuk fieldgetError(field)- Ambil error message untuk field
Computed Properties
hasErrors- Boolean apakah ada errorerrorMessages- Array semua error messagesfirstError- Error pertama (untuk alert general)
Field Component
Field component akan otomatis menampilkan error jika:
- Field memiliki
idprop yang sesuai dengan field name - Field menerima
errorsprop - Ada error untuk field tersebut di dalam errors object
Error akan ditampilkan dengan class .field-error-info yang sudah di-style dengan warna merah.