Squash merge de develop vers master. Livrables principaux (ticket #101 et mise au point associée) : - Branchement du formulaire d'inscription parent sur POST /api/v1/auth/register/parent - Payload DTO (parents, enfants, photos base64, CGU) et services Auth - Parcours gestionnaire : cartes dossiers, wizard validation famille, images authentifiées - Scripts d'inscription test (Martin, Durand/Rousseau, Lecomte) ; .gitignore .cursor/ Inclut également les ajustements develop fusionnés dans ce lot (inscription AM, champs relais, etc.). Closes #101 Made-with: Cursor
20 lines
641 B
Dart
20 lines
641 B
Dart
import 'package:flutter/services.dart';
|
|
|
|
/// Saisie code postal français : uniquement des chiffres, au plus 5.
|
|
final List<TextInputFormatter> kFrenchPostalCodeInputFormatters = [
|
|
FilteringTextInputFormatter.digitsOnly,
|
|
LengthLimitingTextInputFormatter(5),
|
|
];
|
|
|
|
/// Valide un code postal français (exactement 5 chiffres).
|
|
String? validateFrenchPostalCode(String? raw, {bool allowEmpty = false}) {
|
|
final s = raw?.trim() ?? '';
|
|
if (s.isEmpty) {
|
|
return allowEmpty ? null : 'Ce champ est obligatoire';
|
|
}
|
|
if (s.length != 5 || int.tryParse(s) == null) {
|
|
return 'Le code postal doit comporter 5 chiffres.';
|
|
}
|
|
return null;
|
|
}
|