- Économie : ~1240 lignes de code dupliqué - Réduction : ~60% du code modal - Amélioration : Cohérence et maintenabilité
31 lines
896 B
TypeScript
31 lines
896 B
TypeScript
/**
|
|
* Utilitaires centralisés pour la gestion des formulaires
|
|
*/
|
|
|
|
export function handleFormError(err: any, operation: string): string {
|
|
const errorMessage = err?.message || err?.details || `Erreur lors de ${operation}`;
|
|
console.error(`Erreur lors de ${operation}:`, err);
|
|
return errorMessage;
|
|
}
|
|
|
|
export function validateRequiredFields(data: Record<string, any>, requiredFields: string[]): string[] {
|
|
const errors: string[] = [];
|
|
|
|
for (const field of requiredFields) {
|
|
if (!data[field] || (typeof data[field] === 'string' && data[field].trim() === '')) {
|
|
errors.push(`Le champ "${field}" est requis`);
|
|
}
|
|
}
|
|
|
|
return errors;
|
|
}
|
|
|
|
export function validateEmail(email: string): boolean {
|
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
return emailRegex.test(email);
|
|
}
|
|
|
|
export function formatErrorMessage(errors: string[]): string {
|
|
return errors.join('. ');
|
|
}
|