@@ -40,6 +40,27 @@ export function handleApiError(error_) {
|
||||
toast.error('عملیات با خطا مواجه شد')
|
||||
}
|
||||
|
||||
// Walks a typed validation error response (e.g. Laravel 422 with `errors`
|
||||
// keyed by field) and pushes the first message for each field into the
|
||||
// caller's form via setFieldError. Falls back to a toast when the error
|
||||
// isn't a field-level validation failure.
|
||||
export function applyValidationErrors(error, setFieldError) {
|
||||
const data = error?.response?.data
|
||||
const fieldErrors = data?.errors
|
||||
|
||||
if (fieldErrors && typeof fieldErrors === 'object' && !Array.isArray(fieldErrors)) {
|
||||
Object.entries(fieldErrors).forEach(([field, messages]) => {
|
||||
const message = Array.isArray(messages) ? messages[0] : messages
|
||||
if (typeof setFieldError === 'function' && field && message) {
|
||||
setFieldError(field, message)
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
toast.error(data?.message || 'عملیات با خطا مواجه شد')
|
||||
}
|
||||
|
||||
export function handleUnknownError(options) {
|
||||
const { showToast } = { showToast: true, ...options }
|
||||
if (showToast) {
|
||||
|
||||
Reference in New Issue
Block a user