import 'package:flutter/material.dart';

/// Un champ de saisie pour les informations de transport, utilisé dans un formulaire.
class TransportInfoField extends StatelessWidget {
  // Fonction de rappel pour sauvegarder les informations de transport.
  final Function(String?) onSaved;

  // Constructeur qui prend la fonction onSaved pour transmettre les informations de transport au formulaire.
  const TransportInfoField({Key? key, required this.onSaved}) : super(key: key);

  @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.0)), // Bordure arrondie.
          borderSide: BorderSide.none, // Pas de bordure par défaut.
        ),
        enabledBorder: const OutlineInputBorder(
          borderRadius: BorderRadius.all(Radius.circular(12.0)),
          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.0)),
          borderSide: BorderSide(
            color: Colors.blue, // Bordure bleue au focus.
            width: 2.0,
          ),
        ),
        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.
    );
  }
}
