fix(am): ordre Tab formulaire pro et chevrons accessibles
- Ordre de focus explicite (NumericFocusOrder) pour l’inscription AM étape 2 : chaîne des champs jusqu’aux chevrons, Pays → NIR, places → Suivant (10) puis Précédent (11). - FocusTraversalGroup avec OrderedTraversalPolicy sur le Scaffold pour respecter cet ordre (desktop / web). - Champ pays : TextInputAction.next, onFieldSubmitted et onEditingComplete vers le NIR ; CustomAppTextField expose onEditingComplete. - NirTextField : focusNode et focusTraversalOrder optionnels. Made-with: Cursor
This commit is contained in:
@@ -8,6 +8,9 @@ import 'custom_app_text_field.dart';
|
||||
/// La valeur envoyée au [controller] est formatée ; utiliser [normalizeNir](controller.text) à la soumission.
|
||||
class NirTextField extends StatelessWidget {
|
||||
final TextEditingController controller;
|
||||
final FocusNode? focusNode;
|
||||
/// Si non null, impose l’ordre Tab parmi les descendants (ex. après « Pays de naissance »).
|
||||
final double? focusTraversalOrder;
|
||||
final String labelText;
|
||||
final String hintText;
|
||||
final String? Function(String?)? validator;
|
||||
@@ -23,6 +26,8 @@ class NirTextField extends StatelessWidget {
|
||||
const NirTextField({
|
||||
super.key,
|
||||
required this.controller,
|
||||
this.focusNode,
|
||||
this.focusTraversalOrder,
|
||||
this.labelText = 'N° Sécurité Sociale (NIR)',
|
||||
this.hintText = '13 chiffres + clé',
|
||||
this.validator,
|
||||
@@ -38,8 +43,9 @@ class NirTextField extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CustomAppTextField(
|
||||
final field = CustomAppTextField(
|
||||
controller: controller,
|
||||
focusNode: focusNode,
|
||||
labelText: labelText,
|
||||
hintText: hintText,
|
||||
fieldWidth: fieldWidth,
|
||||
@@ -54,5 +60,13 @@ class NirTextField extends StatelessWidget {
|
||||
style: style,
|
||||
labelFieldSpacing: labelFieldSpacing,
|
||||
);
|
||||
final o = focusTraversalOrder;
|
||||
if (o != null) {
|
||||
return FocusTraversalOrder(
|
||||
order: NumericFocusOrder(o),
|
||||
child: field,
|
||||
);
|
||||
}
|
||||
return field;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user