import 'package:flutter/material.dart'; class DatePickerField extends StatelessWidget { final DateTime? selectedDate; final Function(DateTime?) onDatePicked; final String label; // Texte du label const DatePickerField({ Key? key, this.selectedDate, required this.onDatePicked, this.label = 'Sélectionnez une date', // Label par défaut }) : super(key: key); @override Widget build(BuildContext context) { return GestureDetector( onTap: () async { final DateTime? picked = await showDatePicker( context: context, initialDate: DateTime.now(), firstDate: DateTime.now(), lastDate: DateTime(2101), ); if (picked != null) { onDatePicked(picked); } }, child: Container( padding: const EdgeInsets.symmetric(vertical: 14.0, horizontal: 18.0), decoration: BoxDecoration( color: Colors.blueGrey.withOpacity(0.1), // Fond plus doux et moderne borderRadius: BorderRadius.circular(12.0), // Coins arrondis plus prononcés border: Border.all(color: Colors.blueGrey.withOpacity(0.5), width: 2.0), // Bordure légère boxShadow: [ BoxShadow( color: Colors.black12, offset: Offset(0, 4), blurRadius: 8, ), ], ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( selectedDate == null ? label : '${selectedDate!.day}/${selectedDate!.month}/${selectedDate!.year}', style: const TextStyle( color: Colors.blueGrey, // Couleur du texte adaptée fontSize: 16.0, // Taille de police améliorée fontWeight: FontWeight.w600, // Poids de police plus important pour un meilleur contraste ), ), Icon( Icons.calendar_today, color: Colors.blueGrey, // Couleur de l'icône assortie au texte ), ], ), ), ); } }