import 'package:flutter/material.dart'; /// Un champ de saisie pour l'organisateur, utilisé dans un formulaire. class OrganizerField extends StatelessWidget { // Constructeur qui prend la fonction onSaved pour transmettre l'organisateur au formulaire. const OrganizerField({required this.onSaved, super.key}); // Fonction de rappel pour sauvegarder la valeur de l'organisateur. final Function(String?) onSaved; @override Widget build(BuildContext context) { return TextFormField( decoration: InputDecoration( labelText: 'Organisateur', // Texte d'étiquette pour le champ de saisie. labelStyle: const TextStyle( color: Colors.blueGrey, // Couleur de l'étiquette en blueGrey. ), prefixIcon: const Icon( Icons.person, // Icône représentant un organisateur (utilisateur). color: Colors.blueGrey, // Couleur de l'icône. ), border: const OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(12)), // Bordure arrondie. borderSide: BorderSide.none, // Pas de bordure par défaut. ), enabledBorder: const OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(12)), borderSide: BorderSide( color: Colors.blueGrey, // Bordure colorée en blueGrey. width: 1.5, // Largeur de la bordure. ), ), focusedBorder: const OutlineInputBorder( borderRadius: BorderRadius.all(Radius.circular(12)), borderSide: BorderSide( color: Colors.blue, // Bordure bleue au focus. width: 2, ), ), filled: true, // Le champ de saisie est rempli de couleur de fond. fillColor: Colors.blueGrey.withOpacity(0.1), // Couleur de fond avec opacité. ), validator: (value) { // Validation pour vérifier que le champ n'est pas vide. if (value == null || value.isEmpty) { return 'Veuillez entrer un organisateur'; // Message d'erreur si vide. } return null; }, onSaved: onSaved, // Fonction qui est appelée pour sauvegarder la valeur saisie. ); } }