import 'package:flutter/material.dart'; class CustomDropdown extends StatelessWidget { final String value; final String label; final IconData? icon; final List items; final void Function(String?) onChanged; final String? Function(String?)? validator; const CustomDropdown({ super.key, required this.value, required this.label, required this.items, required this.onChanged, this.icon, this.validator, }); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( label, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w600, color: Colors.grey.shade700, ), ), SizedBox(height: 8), DropdownButtonFormField( initialValue: items.contains(value) ? value : null, decoration: InputDecoration( prefixIcon: icon != null ? Icon(icon, color: Colors.blue.shade400, size: 22) : null, filled: true, fillColor: Colors.white, contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 14), border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: Colors.grey.shade300), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: Colors.grey.shade300), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: Colors.blue, width: 2), ), errorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: Colors.red.shade300), ), focusedErrorBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide(color: Colors.red, width: 2), ), ), items: items.map((String item) { return DropdownMenuItem( value: item, child: Text(item), ); }).toList(), onChanged: onChanged, validator: validator, dropdownColor: Colors.white, icon: Icon(Icons.arrow_drop_down, color: Colors.blue.shade400), ), ], ); } }