Files
mes-budgets-participatifs/src/lib/form-utils.ts
Yannick Le Duc dc388bf371 refactoring majeur (code dupliqué, mort, ...)
- Économie : ~1240 lignes de code dupliqué
- Réduction : ~60% du code modal
- Amélioration : Cohérence et maintenabilité
2025-08-27 12:45:37 +02:00

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('. ');
}