diff --git a/lib/config/urls.dart b/lib/config/urls.dart index f663185..e4cd8dc 100755 --- a/lib/config/urls.dart +++ b/lib/config/urls.dart @@ -190,7 +190,16 @@ class Url { static String searchItems(String value) { return '$baseUrl/Items?name=$value'; } + static String searchMyItems(String value) { return '$baseUrl/MyItems?name=$value'; } + + static String searchPackages(String value) { + return '$baseUrl/Packages?name=$value'; + } + + static String searchMyPackages(String value) { + return '$baseUrl/MyPackages?name=$value'; + } } diff --git a/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart b/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart index 233db34..34ccc95 100755 --- a/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart +++ b/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart @@ -68,6 +68,7 @@ class _MyPackagesMineScreenState extends State { final double _deviceWidth = _media.size.width; final double _deviceBlockSize = _deviceWidth / 100; final userData = Provider.of(context, listen: false).user; + var searchVal; return Consumer( builder: (ct, connection, _) { return connection.conStatus != 'offline' @@ -129,12 +130,18 @@ class _MyPackagesMineScreenState extends State { ResultSearchBox( searchCTRL: searchCTRL, text: 'package', + text2: "name", deviceBlockSize: _deviceBlockSize, onChanged: (value) { - Provider.of(context, listen: false) - .searchMyPackages(value); + searchVal = value; + }, + onTap: () async { + var myPackages = await Provider.of( + context, + listen: false); + myPackages.setLoading(); + await myPackages.searchMyPackages(searchVal); }, - onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/pages/PackagePages/package_result_screen.dart b/lib/pages/PackagePages/package_result_screen.dart index a8f9895..d17c0f0 100755 --- a/lib/pages/PackagePages/package_result_screen.dart +++ b/lib/pages/PackagePages/package_result_screen.dart @@ -98,6 +98,7 @@ class _PackageResultScreenState 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: () { @@ -198,12 +199,18 @@ class _PackageResultScreenState extends State { ResultSearchBox( searchCTRL: searchCTRL, text: 'package', + text2: "name", deviceBlockSize: _deviceBlockSize, onChanged: (value) { - Provider.of(context, listen: false) - .search(value); + searchVal = value; + }, + onTap: () async { + var packages = await Provider.of( + context, + listen: false); + packages.setLoading(); + await packages.search(searchVal); }, - onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/providers/my_packages.dart b/lib/providers/my_packages.dart index 7b3a028..49b274f 100755 --- a/lib/providers/my_packages.dart +++ b/lib/providers/my_packages.dart @@ -41,17 +41,30 @@ class MyPackageProvider extends ChangeNotifier { void setLoading() { isloading = true; - // notifyListeners(); + notifyListeners(); } - void searchMyPackages(String value) { + Future searchMyPackages(String value) async { myPackages = []; searchBoxValue = value; - originalMyPackages!.forEach((result) { - if (result.id.toString().contains(searchBoxValue)) { - myPackages!.add(result); - } - }); + var response = await http.get( + Uri.parse(Url.searchMyPackages(value)), + headers: {'Authorization': User.token, "Accept": "application/json"}, + ); + + var packagesData = json.decode(response.body); + + for (var package in packagesData['data']) { + myPackages!.add( + MyPackageResultObject( + name: package['name'], + id: package['id'].toString(), + createdAt: package['created_at'].toString(), + userName: package['user'] != null ? package['user']['name'] : '', + ), + ); + } + resetLoading(); notifyListeners(); } @@ -119,8 +132,10 @@ class MyPackageProvider extends ChangeNotifier { ), ); } + myPackages = originalMyPackages; pageNumber += 1; - searchMyPackages(''); + // searchMyPackages(''); + notifyListeners(); } // Future getHospitalPackages() async { diff --git a/lib/providers/packages.dart b/lib/providers/packages.dart index 8e723b1..13a5f3a 100755 --- a/lib/providers/packages.dart +++ b/lib/providers/packages.dart @@ -166,7 +166,7 @@ class PackageProvider extends ChangeNotifier { void setLoading() { isloading = true; - // notifyListeners(); + notifyListeners(); } bool isloadingButton = false; @@ -341,29 +341,32 @@ class PackageProvider extends ChangeNotifier { notifyListeners(); } - void search(String value) { + Future search(String value) async { items = []; searchBoxValue = value; - originalItems!.forEach((result) { - if (result.id - .toString() - .toLowerCase() - .contains(searchBoxValue.toLowerCase()) || - result.id - .toString() - .toUpperCase() - .contains(searchBoxValue.toUpperCase()) || - result.id - .toString() - .toLowerCase() - .contains(searchBoxValue.toUpperCase()) || - result.id - .toString() - .toUpperCase() - .contains(searchBoxValue.toLowerCase())) { - items!.add(result); - } - }); + var response = await http.get( + Uri.parse(Url.searchPackages(value)), + headers: { + 'Authorization': User.token, + }, + ); + + var testResultData = json.decode(response.body); + for (var item in testResultData['data']) { + List itemsId = + (item['items'] as List).map((item) => item['id'].toString()).toList(); + items!.add( + PackageResultObject( + createdAt: item['created_at'], + id: item['id'].toString(), + name: item['name'], + status: item['status'], + userName: item['user']['name'], + itemsId: itemsId, + ), + ); + } + resetLoading(); notifyListeners(); } @@ -409,8 +412,10 @@ class PackageProvider extends ChangeNotifier { ), ); } + items = originalItems; pageNumber += 1; - search(''); + // search(''); + notifyListeners(); } Future showPackageResult(String id) async {