import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../../core/l10n/app_strings.dart'; import '../provider.dart'; class SearchBar extends StatelessWidget { final TextEditingController controller; final FocusNode focusNode; final VoidCallback onTap; final WidgetRef ref; final AppStrings strings; const SearchBar({ super.key, required this.controller, required this.focusNode, required this.onTap, required this.ref, required this.strings, }); @override Widget build(BuildContext context) { final isDark = Theme.of(context).brightness == Brightness.dark; return TextField( controller: controller, focusNode: focusNode, onTap: onTap, decoration: InputDecoration( hintText: strings.searchHint, prefixIcon: Icon( Icons.search_rounded, color: Theme.of(context).colorScheme.onSurface.withOpacity(0.6), ), suffixIcon: controller.text.isNotEmpty ? IconButton( icon: const Icon(Icons.clear_rounded, size: 20), color: Theme.of(context).colorScheme.onSurface.withOpacity(0.6), onPressed: () { controller.clear(); ref.read(searchQueryProvider.notifier).state = ''; }, ) : null, filled: true, fillColor: Theme.of(context).inputDecorationTheme.fillColor, enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide( color: isDark ? Colors.white.withOpacity(0.08) : const Color(0xFFCCCCDD), width: 1, ), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: Color(0xFF7C6DED), width: 1.5), ), border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: BorderSide.none, ), contentPadding: const EdgeInsets.symmetric( horizontal: 16, vertical: 12, ), ), onChanged: (v) => ref.read(searchQueryProvider.notifier).state = v, ); } }