import 'package:flutter/material.dart'; class SearchActionsBar extends StatelessWidget { final TextEditingController controller; final String hintText; final ValueChanged onChanged; final VoidCallback onClear; final List actions; const SearchActionsBar({ super.key, required this.controller, required this.hintText, required this.onChanged, required this.onClear, this.actions = const [], }); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(16.0), child: Row( children: [ Expanded( child: TextField( controller: controller, decoration: InputDecoration( hintText: hintText, prefixIcon: const Icon(Icons.search), suffixIcon: controller.text.isNotEmpty ? IconButton( icon: const Icon(Icons.clear), onPressed: onClear, ) : null, border: OutlineInputBorder( borderRadius: BorderRadius.circular(8), ), contentPadding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), ), onChanged: onChanged, ), ), if (actions.isNotEmpty) ...[ const SizedBox(width: 8), Row( mainAxisSize: MainAxisSize.min, children: [ for (int i = 0; i < actions.length; i++) ...[ if (i > 0) const SizedBox(width: 8), actions[i], ], ], ), ], ], ), ); } }