import 'package:flutter/material.dart'; /// Un champ de saisie pour les informations de transport, utilisé dans un formulaire. class TransportInfoField extends StatelessWidget { // Constructeur qui prend la fonction onSaved pour transmettre les informations de transport au formulaire. const TransportInfoField({required this.onSaved, super.key}); // Fonction de rappel pour sauvegarder les informations de transport. final Function(String?) onSaved; @override Widget build(BuildContext context) { return TextFormField( decoration: InputDecoration( // Suppression du mot-clé 'const' labelText: 'Informations de transport', // Texte d'étiquette pour le champ de saisie. labelStyle: const TextStyle( color: Colors.blueGrey, // Couleur de l'étiquette en blueGrey. ), prefixIcon: const Icon( Icons.directions_car, // Icône représentant un moyen de transport (voiture). 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 des informations sur le transport'; // Message d'erreur si vide. } return null; }, onSaved: onSaved, // Fonction qui est appelée pour sauvegarder la valeur saisie. ); } }