From ae6de355e7057f2993142e5e645bdf840c9f45d1 Mon Sep 17 00:00:00 2001 From: "hanie.khodkari" Date: Sat, 10 May 2025 20:13:37 +0330 Subject: [PATCH] Set search item by api --- lib/config/urls.dart | 4 ++ lib/pages/CyclePages/cycle_result_screen.dart | 3 -- lib/pages/ItemPages/item_result_screen.dart | 12 +++-- lib/providers/cycles.dart | 2 +- lib/providers/items.dart | 52 ++++++++++--------- 5 files changed, 42 insertions(+), 31 deletions(-) diff --git a/lib/config/urls.dart b/lib/config/urls.dart index 1effd37..0510a1d 100755 --- a/lib/config/urls.dart +++ b/lib/config/urls.dart @@ -186,4 +186,8 @@ class Url { static String searchCycles(String id) { return '$baseUrl/Cycles?cycle_id=$id'; } + + static String searchItems(String value) { + return '$baseUrl/Items?name=$value'; + } } diff --git a/lib/pages/CyclePages/cycle_result_screen.dart b/lib/pages/CyclePages/cycle_result_screen.dart index 1454400..751f525 100755 --- a/lib/pages/CyclePages/cycle_result_screen.dart +++ b/lib/pages/CyclePages/cycle_result_screen.dart @@ -190,9 +190,6 @@ class _CycleResultScreenState extends State { text: 'cycle', onChanged: (value) { searchVal = value; - // Provider.of(context, - // listen: false) - // .search(value); }, onTap: () async { var cycles = await Provider.of( diff --git a/lib/pages/ItemPages/item_result_screen.dart b/lib/pages/ItemPages/item_result_screen.dart index b91140a..ffd9121 100755 --- a/lib/pages/ItemPages/item_result_screen.dart +++ b/lib/pages/ItemPages/item_result_screen.dart @@ -98,6 +98,7 @@ class _ItemResultScreenState extends State { final _media = MediaQuery.of(context); final double _deviceWidth = _media.size.width; final double _deviceBlockSize = _deviceWidth / 100; + var searchVal; return SafeArea( child: GestureDetector( onTap: () { @@ -235,10 +236,15 @@ class _ItemResultScreenState extends State { textInputType: TextInputType.visiblePassword, text2: "Udi", onChanged: (value) { - Provider.of(context, listen: false) - .search(value); + searchVal = value; + }, + onTap: () async { + var items = await Provider.of( + context, + listen: false); + items.setLoading(); + await items.search(searchVal); }, - onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/providers/cycles.dart b/lib/providers/cycles.dart index 0fa90bd..ecb022e 100755 --- a/lib/providers/cycles.dart +++ b/lib/providers/cycles.dart @@ -121,7 +121,7 @@ class CyclesProvider extends ChangeNotifier { void setLoading() { isloading = true; - // notifyListeners(); + notifyListeners(); } bool isloadingButton = false; diff --git a/lib/providers/items.dart b/lib/providers/items.dart index 82bbd79..f9b2114 100755 --- a/lib/providers/items.dart +++ b/lib/providers/items.dart @@ -51,7 +51,7 @@ class ItemProvider extends ChangeNotifier { void setLoading() { isloading = true; - // notifyListeners(); + notifyListeners(); } bool isloadingButton = false; @@ -244,29 +244,33 @@ class ItemProvider extends ChangeNotifier { notifyListeners(); } - void search(String value) { + Future search(String value) async { items = []; searchBoxValue = value; - originalItems!.forEach((result) { - if (result.udi - .toString() - .toLowerCase() - .contains(searchBoxValue.toLowerCase()) || - result.udi - .toString() - .toUpperCase() - .contains(searchBoxValue.toUpperCase()) || - result.udi - .toString() - .toLowerCase() - .contains(searchBoxValue.toUpperCase()) || - result.udi - .toString() - .toUpperCase() - .contains(searchBoxValue.toLowerCase())) { - items!.add(result); - } - }); + var response = await http.get( + Uri.parse(Url.searchItems(value)), + headers: { + 'Authorization': User.token, + }, + ); + + var itemsData = json.decode(response.body); + + for (var item in itemsData['data']) { + items!.add( + ItemResultObject( + name: item['name'], + id: item['id'].toString(), + size: item['size'].toString(), + userName: item['user'] != null ? item['user']['name'] : '', + status: item['status'], + udi: item['udi'], + packageId: + item['package_id'] != null ? item['package_id'].toString() : "", + ), + ); + } + resetLoading(); notifyListeners(); } @@ -319,8 +323,8 @@ class ItemProvider extends ChangeNotifier { ); } pageNumber += 1; - - search(''); + items = originalItems; + notifyListeners(); } Future showItemResult(String id) async {