feat: enhance invoice validation and error handling with detailed messages
This commit is contained in:
@@ -144,13 +144,23 @@
|
||||
}
|
||||
});
|
||||
|
||||
console.log('Save result:', result);
|
||||
|
||||
if (!result.success) {
|
||||
throw new Error(result.error || 'Error al guardar la factura');
|
||||
// Crear un error con validationErrors si existen
|
||||
const error: any = new Error(result.error || 'Error al guardar la factura');
|
||||
if (result.validationErrors) {
|
||||
error.validationErrors = result.validationErrors;
|
||||
}
|
||||
throw error;
|
||||
}
|
||||
|
||||
toast.success('Todos los cambios se guardaron correctamente');
|
||||
} catch (e) {
|
||||
console.error('Error saving all:', e);
|
||||
console.log('Error object:', e);
|
||||
console.log('Has validationErrors?', (e as any)?.validationErrors);
|
||||
|
||||
if (e instanceof Error && e.message.includes('401')) {
|
||||
toast.error('Sesión expirada. Recargando página...');
|
||||
setTimeout(() => {
|
||||
@@ -158,9 +168,23 @@
|
||||
}, 1500);
|
||||
} else {
|
||||
const errorMessage = e instanceof Error ? e.message : 'Error al guardar los cambios';
|
||||
toast.error(errorMessage, {
|
||||
description: 'Revisa la consola para más detalles'
|
||||
});
|
||||
|
||||
// Si hay errores de validación, mostrarlos en detalle
|
||||
if (e && typeof e === 'object' && 'validationErrors' in e && Array.isArray((e as any).validationErrors)) {
|
||||
const validationErrors = (e as any).validationErrors;
|
||||
console.log('Found validationErrors:', validationErrors);
|
||||
const errorList = validationErrors.map((err: any) =>
|
||||
`• ${err.field}: ${err.message}${err.solution ? ' - ' + err.solution.join(', ') : ''}`
|
||||
).join('\n');
|
||||
|
||||
toast.error(errorMessage, {
|
||||
description: errorList
|
||||
});
|
||||
} else {
|
||||
toast.error(errorMessage, {
|
||||
description: 'Revisa la consola para más detalles'
|
||||
});
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
saving = false;
|
||||
|
||||
Reference in New Issue
Block a user