import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:gap/gap.dart'; import 'package:intl/intl.dart'; class DatePickerWidget extends StatefulWidget { final String label; final TextEditingController controller; DateTime value; DatePickerWidget({super.key, required this.label, required this.controller, required this.value}); @override State createState() => _DatePickerWidgetState(); } class _DatePickerWidgetState extends State { Future _selectDate(BuildContext context) async { final DateTime? picked = await showDatePicker( context: context, initialDate: widget.value, firstDate: DateTime(2015, 8), lastDate: DateTime(2101)); if (picked != null && picked != widget.value) { setState(() { widget.value = picked; final DateFormat formatter = DateFormat('MMMM dd, yyyy'); widget.controller.text = formatter.format(widget.value); }); } } @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('${widget.label}:', style: GoogleFonts.outfit( textStyle: const TextStyle(color: Colors.white, fontSize: 12), )), const Gap(8), GestureDetector( onTap: () => {_selectDate(context)}, child: Container( padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 16), decoration: BoxDecoration( // border: OutlineInputBorder(borderRadius: BorderRadius.circular(8)), border: Border.all(color: Colors.white), borderRadius: BorderRadius.circular(8), color: Colors.transparent, ), alignment: Alignment.centerLeft, child: Text(widget.controller.text.isNotEmpty ? widget.controller.text : 'Select Date', style: GoogleFonts.outfit( textStyle: const TextStyle(color: Color.fromRGBO(255, 255, 255, 1), fontSize: 16))), ), ), ], ); } }