|
|
|
@@ -0,0 +1,92 @@ |
|
|
|
import 'package:farm_tpf/models/Supply.dart'; |
|
|
|
import 'package:farm_tpf/presentation/screens/resources/bloc/supply_bloc.dart'; |
|
|
|
import 'package:farm_tpf/utils/const_color.dart'; |
|
|
|
import 'package:flutter/material.dart'; |
|
|
|
import 'package:flutter_bloc/flutter_bloc.dart'; |
|
|
|
|
|
|
|
class WidgetSearch extends StatefulWidget { |
|
|
|
final String type; |
|
|
|
final int selectedId; |
|
|
|
WidgetSearch({this.type, this.selectedId}); |
|
|
|
@override |
|
|
|
_WidgetSearchState createState() => _WidgetSearchState(); |
|
|
|
} |
|
|
|
|
|
|
|
class _WidgetSearchState extends State<WidgetSearch> { |
|
|
|
BuildContext _blocContext; |
|
|
|
TextEditingController _searchController = TextEditingController(); |
|
|
|
|
|
|
|
@override |
|
|
|
void initState() { |
|
|
|
super.initState(); |
|
|
|
_searchController.addListener(() { |
|
|
|
final keyword = _searchController.text; |
|
|
|
if (keyword.isNotEmpty) { |
|
|
|
//search when text change |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
Widget getSearchBarUI() { |
|
|
|
_searchController.text = ""; |
|
|
|
return Padding( |
|
|
|
padding: const EdgeInsets.only(left: 16, right: 16, top: 4, bottom: 0), |
|
|
|
child: Row( |
|
|
|
children: <Widget>[ |
|
|
|
Expanded( |
|
|
|
child: Padding( |
|
|
|
padding: const EdgeInsets.only(right: 8, top: 8, bottom: 0), |
|
|
|
child: Container( |
|
|
|
decoration: BoxDecoration( |
|
|
|
color: Colors.white, |
|
|
|
borderRadius: const BorderRadius.all( |
|
|
|
Radius.circular(38.0), |
|
|
|
), |
|
|
|
boxShadow: <BoxShadow>[ |
|
|
|
BoxShadow( |
|
|
|
color: Colors.grey.withOpacity(0.2), |
|
|
|
offset: const Offset(0, 2), |
|
|
|
blurRadius: 8.0), |
|
|
|
], |
|
|
|
), |
|
|
|
child: Padding( |
|
|
|
padding: const EdgeInsets.only( |
|
|
|
left: 16, right: 16, top: 4, bottom: 4), |
|
|
|
child: TextField( |
|
|
|
textInputAction: TextInputAction.done, |
|
|
|
controller: _searchController, |
|
|
|
onChanged: (String txt) {}, |
|
|
|
cursorColor: COLOR_CONST.GRAY1, |
|
|
|
decoration: InputDecoration( |
|
|
|
border: InputBorder.none, |
|
|
|
hintText: 'Tìm kiếm ...', |
|
|
|
), |
|
|
|
onSubmitted: (value) { |
|
|
|
FocusScope.of(context).requestFocus(FocusNode()); |
|
|
|
BlocProvider.of<SupplyBloc>(_blocContext).add(OnSearch( |
|
|
|
searchString: value, |
|
|
|
type: widget.type, |
|
|
|
selectedId: widget.selectedId)); |
|
|
|
}, |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
), |
|
|
|
], |
|
|
|
), |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
@override |
|
|
|
Widget build(BuildContext context) { |
|
|
|
_blocContext = context; |
|
|
|
return Container(child: getSearchBarUI()); |
|
|
|
} |
|
|
|
|
|
|
|
@override |
|
|
|
void dispose() { |
|
|
|
_searchController.dispose(); |
|
|
|
super.dispose(); |
|
|
|
} |
|
|
|
} |