creek
The AI Image Editor of 2030git clone https://github.com/maydayv7/creek
lib/ui/widgets/search_bar.dart (1737B)
1import 'package:flutter/material.dart';
2import 'package:creekui/ui/styles/variables.dart';
3
4class CommonSearchBar extends StatelessWidget {
5 final TextEditingController controller;
6 final ValueChanged<String>? onChanged;
7 final String hintText;
8 final Color? backgroundColor;
9
10 const CommonSearchBar({
11 super.key,
12 required this.controller,
13 this.onChanged,
14 this.hintText = 'Search',
15 this.backgroundColor,
16 });
17
18 @override
19 Widget build(BuildContext context) {
20 return TextField(
21 controller: controller,
22 onChanged: onChanged,
23 style: Variables.bodyStyle,
24 decoration: InputDecoration(
25 hintText: hintText,
26 hintStyle: Variables.bodyStyle.copyWith(
27 color: Variables.textSecondary.withOpacity(0.5),
28 ),
29 prefixIcon: Icon(
30 Icons.search,
31 size: 18,
32 color: Variables.textSecondary.withOpacity(0.5),
33 ),
34 prefixIconConstraints: const BoxConstraints(
35 minWidth: 50,
36 minHeight: 18,
37 ),
38 filled: true,
39 fillColor: backgroundColor ?? Variables.surfaceSubtle,
40 border: OutlineInputBorder(
41 borderRadius: BorderRadius.circular(Variables.radiusSmall),
42 borderSide: BorderSide.none,
43 ),
44 enabledBorder: OutlineInputBorder(
45 borderRadius: BorderRadius.circular(Variables.radiusSmall),
46 borderSide: BorderSide.none,
47 ),
48 focusedBorder: OutlineInputBorder(
49 borderRadius: BorderRadius.circular(Variables.radiusSmall),
50 borderSide: BorderSide.none,
51 ),
52 contentPadding: const EdgeInsets.symmetric(
53 horizontal: 16,
54 vertical: 12,
55 ),
56 ),
57 );
58 }
59}