diff --git a/lib/pages/device_managment/all_devices/widgets/device_search_filters.dart b/lib/pages/device_managment/all_devices/widgets/device_search_filters.dart index 650c0d21..27bcb0de 100644 --- a/lib/pages/device_managment/all_devices/widgets/device_search_filters.dart +++ b/lib/pages/device_managment/all_devices/widgets/device_search_filters.dart @@ -12,77 +12,89 @@ class DeviceSearchFilters extends StatefulWidget { State createState() => _DeviceSearchFiltersState(); } -class _DeviceSearchFiltersState extends State with HelperResponsiveLayout { - final TextEditingController communityController = TextEditingController(); - final TextEditingController unitNameController = TextEditingController(); - final TextEditingController productNameController = TextEditingController(); +class _DeviceSearchFiltersState extends State + with HelperResponsiveLayout { + late final TextEditingController _unitNameController; + late final TextEditingController _productNameController; + + @override + void initState() { + _unitNameController = TextEditingController(); + _productNameController = TextEditingController(); + super.initState(); + } + + @override + void dispose() { + _unitNameController.dispose(); + _productNameController.dispose(); + super.dispose(); + } + + List get _widgets => [ + _buildSearchField( + "Space Name", + _unitNameController, + 200, + ), + _buildSearchField( + "Device Name / Product Name", + _productNameController, + 300, + ), + _buildSearchResetButtons(), + ]; @override Widget build(BuildContext context) { - return isExtraLargeScreenSize(context) - ? Row( - children: [ - _buildSearchField("Community", communityController, 200), - const SizedBox(width: 20), - _buildSearchField("Space Name", unitNameController, 200), - const SizedBox(width: 20), - _buildSearchField("Device Name / Product Name", productNameController, 300), - const SizedBox(width: 20), - _buildSearchResetButtons(), - ], - ) - : Wrap( - spacing: 20, - runSpacing: 10, - children: [ - _buildSearchField( - "Community", - communityController, - 200, - ), - _buildSearchField("Space Name", unitNameController, 200), - _buildSearchField( - "Device Name / Product Name", - productNameController, - 300, - ), - _buildSearchResetButtons(), - ], - ); + if (isExtraLargeScreenSize(context)) { + return Row( + spacing: 20, + children: _widgets, + ); + } + + return Wrap( + spacing: 20, + runSpacing: 10, + children: _widgets, + ); } - Widget _buildSearchField(String title, TextEditingController controller, double width) { - return Container( - child: StatefulTextField( - title: title, - width: width, - elevation: 2, - controller: controller, - onSubmitted: () { - context.read().add(SearchDevices( - productName: productNameController.text, - unitName: unitNameController.text, - community: communityController.text, - searchField: true)); - }, - onChanged: (p0) {}, - ), + Widget _buildSearchField( + String title, + TextEditingController controller, + double width, + ) { + return StatefulTextField( + title: title, + width: width, + elevation: 2, + controller: controller, + onSubmitted: () { + final searchDevicesEvent = SearchDevices( + productName: _productNameController.text, + unitName: _unitNameController.text, + searchField: true, + ); + context.read().add(searchDevicesEvent); + }, + onChanged: (p0) {}, ); } Widget _buildSearchResetButtons() { return SearchResetButtons( - onSearch: () { - context.read().add(SearchDevices( - community: communityController.text, - unitName: unitNameController.text, - productName: productNameController.text, - searchField: true)); - }, + onSearch: () => context.read().add( + SearchDevices( + unitName: _unitNameController.text, + productName: _productNameController.text, + searchField: true, + ), + ), onReset: () { - communityController.clear(); - unitNameController.clear(); - productNameController.clear(); + _unitNameController.clear(); + _productNameController.clear(); context.read() ..add(ResetFilters()) ..add(FetchDevices(context));