import 'package:flutter/material.dart'; import 'package:em2rp/utils/colors.dart'; /// Widget réutilisable pour une barre de recherche class SearchBarWidget extends StatelessWidget { final TextEditingController controller; final String hintText; final ValueChanged onChanged; final VoidCallback? onClear; final EdgeInsets padding; final bool withShadow; const SearchBarWidget({ super.key, required this.controller, required this.hintText, required this.onChanged, this.onClear, this.padding = const EdgeInsets.all(16), this.withShadow = true, }); @override Widget build(BuildContext context) { return Container( padding: padding, decoration: withShadow ? BoxDecoration( color: Colors.white, boxShadow: [ BoxShadow( color: Colors.grey.withOpacity(0.1), spreadRadius: 1, blurRadius: 3, offset: const Offset(0, 1), ), ], ) : null, child: TextField( controller: controller, decoration: InputDecoration( hintText: hintText, prefixIcon: const Icon(Icons.search, color: AppColors.rouge), suffixIcon: controller.text.isNotEmpty ? IconButton( icon: const Icon(Icons.clear), onPressed: () { controller.clear(); if (onClear != null) { onClear!(); } else { onChanged(''); } }, ) : null, border: OutlineInputBorder( borderRadius: BorderRadius.circular(8), borderSide: BorderSide(color: Colors.grey.shade300), ), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), ), onChanged: onChanged, ), ); } }