diff --git a/lib/config/urls.dart b/lib/config/urls.dart index fe898e3..1effd37 100755 --- a/lib/config/urls.dart +++ b/lib/config/urls.dart @@ -182,4 +182,8 @@ class Url { static String searchTestResults(String value) { return '$baseUrl/TestResults?test_type_name=$value'; } + + static String searchCycles(String id) { + return '$baseUrl/Cycles?cycle_id=$id'; + } } diff --git a/lib/pages/CyclePages/cycle_result_screen.dart b/lib/pages/CyclePages/cycle_result_screen.dart index 4f0fc3c..1454400 100755 --- a/lib/pages/CyclePages/cycle_result_screen.dart +++ b/lib/pages/CyclePages/cycle_result_screen.dart @@ -68,6 +68,7 @@ class _CycleResultScreenState 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: () { @@ -188,9 +189,17 @@ class _CycleResultScreenState extends State { deviceBlockSize: _deviceBlockSize, text: 'cycle', onChanged: (value) { - Provider.of(context, - listen: false) - .search(value); + searchVal = value; + // Provider.of(context, + // listen: false) + // .search(value); + }, + onTap: () async { + var cycles = await Provider.of( + context, + listen: false); + cycles.setLoading(); + await cycles.search(searchVal); }, ), SizedBox( diff --git a/lib/pages/ItemPages/item_result_screen.dart b/lib/pages/ItemPages/item_result_screen.dart index f23723f..b91140a 100755 --- a/lib/pages/ItemPages/item_result_screen.dart +++ b/lib/pages/ItemPages/item_result_screen.dart @@ -238,6 +238,7 @@ class _ItemResultScreenState extends State { Provider.of(context, listen: false) .search(value); }, + onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/pages/MyItemsPages/Result/my_items_mine_screen.dart b/lib/pages/MyItemsPages/Result/my_items_mine_screen.dart index 898e39a..90e8f62 100755 --- a/lib/pages/MyItemsPages/Result/my_items_mine_screen.dart +++ b/lib/pages/MyItemsPages/Result/my_items_mine_screen.dart @@ -162,6 +162,7 @@ class _MyItemsMineScreenState extends State { Provider.of(context, listen: false) .searchMyItems(value); }, + onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/pages/MyItemsPages/my_items_transfer_screen.dart b/lib/pages/MyItemsPages/my_items_transfer_screen.dart index 4a7cebc..6edd79e 100755 --- a/lib/pages/MyItemsPages/my_items_transfer_screen.dart +++ b/lib/pages/MyItemsPages/my_items_transfer_screen.dart @@ -135,6 +135,7 @@ class _ItemsTransferScreenState extends State { Provider.of(context, listen: false) .searchUsers(value); }, + onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart b/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart index cf80ccf..233db34 100755 --- a/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart +++ b/lib/pages/MyPackagesPages/Result/my_packages_mine_screen.dart @@ -13,6 +13,7 @@ import 'package:provider/provider.dart'; class MyPackagesMineScreen extends StatefulWidget { final bool? isAdmin; + const MyPackagesMineScreen({ Key? key, this.isAdmin, @@ -133,6 +134,7 @@ class _MyPackagesMineScreenState extends State { Provider.of(context, listen: false) .searchMyPackages(value); }, + onTap: () {}, ), SizedBox( height: 20, @@ -146,8 +148,7 @@ class _MyPackagesMineScreenState extends State { color: Colors.black, ), ) - : packageResults.myPackages?.length != - 0 + : packageResults.myPackages?.length != 0 ? ListView.builder( controller: sc, itemBuilder: (context, index) { @@ -172,10 +173,11 @@ class _MyPackagesMineScreenState extends State { shrinkWrap: true, ) : Container( - child: Center( - child: Text("There is no item to show."), - ), - ); + child: Center( + child: + Text("There is no item to show."), + ), + ); }, ), ), diff --git a/lib/pages/MyPackagesPages/my_packages_transfer_screen.dart b/lib/pages/MyPackagesPages/my_packages_transfer_screen.dart index 97657d8..9d3007f 100755 --- a/lib/pages/MyPackagesPages/my_packages_transfer_screen.dart +++ b/lib/pages/MyPackagesPages/my_packages_transfer_screen.dart @@ -130,6 +130,7 @@ class _PackageTransferScreenState extends State { Provider.of(context, listen: false) .searchUsers(value); }, + onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/pages/PackagePages/package_result_screen.dart b/lib/pages/PackagePages/package_result_screen.dart index 17fb656..a8f9895 100755 --- a/lib/pages/PackagePages/package_result_screen.dart +++ b/lib/pages/PackagePages/package_result_screen.dart @@ -203,6 +203,7 @@ class _PackageResultScreenState extends State { Provider.of(context, listen: false) .search(value); }, + onTap: () {}, ), SizedBox( height: 20, diff --git a/lib/providers/cycles.dart b/lib/providers/cycles.dart index 4ba8374..0fa90bd 100755 --- a/lib/providers/cycles.dart +++ b/lib/providers/cycles.dart @@ -271,14 +271,37 @@ class CyclesProvider extends ChangeNotifier { notifyListeners(); } - void search(String value) { + Future search(String value) async { + print(value); items = []; searchBoxValue = value; - originalItems!.forEach((result) { - if (result.id.toString().contains(searchBoxValue)) { - items!.add(result); + var response = await http.get( + Uri.parse(Url.searchCycles(value)), + headers: { + 'Authorization': User.token, + }, + ); + + var testResultData = json.decode(response.body); + List labels = []; + if (pageNumber == 1) { + originalItems = []; + items = []; + } + for (var item in testResultData['data']) { + labels = []; + for (var label in item['labels']) { + labels.add(label['id'].toString()); } - }); + items!.add( + CycleResultObject( + createdAt: item['date'], + id: item['id'].toString(), + label: labels, + ), + ); + } + resetLoading(); notifyListeners(); } @@ -332,8 +355,9 @@ class CyclesProvider extends ChangeNotifier { ), ); } + items = originalItems; pageNumber += 1; - search(''); + notifyListeners(); } Future showCycleResult(String id) async { diff --git a/lib/widgets/CycleScreens/Result/search_box.dart b/lib/widgets/CycleScreens/Result/search_box.dart index 9ca0b88..3194fd7 100755 --- a/lib/widgets/CycleScreens/Result/search_box.dart +++ b/lib/widgets/CycleScreens/Result/search_box.dart @@ -8,6 +8,7 @@ class ResultSearchBox extends StatelessWidget { required double deviceBlockSize, required this.text, required this.onChanged, + required this.onTap, this.text2 = 'ID', this.textInputType = TextInputType.number, }) : _deviceBlockSize = deviceBlockSize, @@ -18,6 +19,7 @@ class ResultSearchBox extends StatelessWidget { final String text; final String text2; final dynamic onChanged; + final dynamic onTap; final TextInputType textInputType; @override @@ -40,6 +42,20 @@ class ResultSearchBox extends StatelessWidget { labelText: 'Search by $text $text2', isDense: true, contentPadding: EdgeInsets.symmetric(vertical: 2, horizontal: 3), + suffixIcon: InkWell( + onTap: onTap, + child: Container( + margin: EdgeInsets.all(5), + decoration: BoxDecoration( + shape: BoxShape.circle, + color: Colors.black, + ), + child: Icon( + Icons.input, + color: Colors.white, + ), + ), + ), ), style: TextStyle( fontWeight: FontWeight.w700, diff --git a/lib/widgets/TestResultScreens/Main/search_box.dart b/lib/widgets/TestResultScreens/Main/search_box.dart index f612a8e..7145dee 100755 --- a/lib/widgets/TestResultScreens/Main/search_box.dart +++ b/lib/widgets/TestResultScreens/Main/search_box.dart @@ -52,8 +52,7 @@ class TestResultSearchBox extends StatelessWidget { color: Colors.black, ), child: Icon( - Icons.space_bar, - // size: 4 * _deviceBlockSize, + Icons.input, color: Colors.white, ), ),