From 232713f8414b2e3dcb7431dd859405a87be04442 Mon Sep 17 00:00:00 2001 From: zaid_daoud Date: Wed, 30 Aug 2023 10:31:47 +0300 Subject: [PATCH] Track Gaz Refills [Most Recent] --- .../providers/api/gas_refill_provider.dart | 21 ++++--------------- ...reventive_maintenance_visits_provider.dart | 2 +- .../user/gas_refill/track_gas_refill.dart | 5 ++++- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/lib/controllers/providers/api/gas_refill_provider.dart b/lib/controllers/providers/api/gas_refill_provider.dart index 6d19dac9..f2e64a1e 100644 --- a/lib/controllers/providers/api/gas_refill_provider.dart +++ b/lib/controllers/providers/api/gas_refill_provider.dart @@ -49,7 +49,7 @@ class GasRefillProvider extends ChangeNotifier { Future getRequests({ @required String host, @required User user, - bool mostRecent, + @required bool mostRecent, }) async { if (isLoading == true) return -2; isLoading = true; @@ -59,24 +59,17 @@ class GasRefillProvider extends ChangeNotifier { Map body = {}; body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1; body["pageSize"] = pageItemNumber; + body["mostRecent"] = mostRecent; print("url:${URLs.getGasRefill}:body:$body"); - response = await ApiManager.instance.post( - URLs.getGasRefill, - body: body, - ); + response = await ApiManager.instance.post(URLs.getGasRefill, body: body); stateCode = response.statusCode; if (stateCode >= 200 && stateCode < 300) { // client's request was successfully received List requestsListJson = json.decode(response.body)["data"]; List itemsPage = requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList(); - if (mostRecent != null) { - items = []; - } else { - items ??= []; - } + items ??= []; items.addAll(itemsPage); - sortMostRecent(items, mostRecent); notifyListeners(); if (itemsPage.length == pageItemNumber) { nextPage = true; @@ -96,12 +89,6 @@ class GasRefillProvider extends ChangeNotifier { } } - void sortMostRecent(List models, bool mostRecent) { - if (mostRecent != null) { - models.sort((prev, next) => (mostRecent ?? false) ? next.title.compareTo(prev.title) : prev.title.compareTo(next.title)); - } - } - Future createModel({ @required String host, @required User user, diff --git a/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart b/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart index 59bf347a..53c3756d 100644 --- a/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart +++ b/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart @@ -69,7 +69,7 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier { // client's request was successfully received List requestsListJson = json.decode(utf8.decode(response.bodyBytes)); List _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList(); - if (visits == null) visits = []; + visits ??= []; visits.addAll(_visits); if (_visits.length == pageItemNumber) { nextPage = true; diff --git a/lib/views/pages/user/gas_refill/track_gas_refill.dart b/lib/views/pages/user/gas_refill/track_gas_refill.dart index 7a1d728b..9eb9bc79 100644 --- a/lib/views/pages/user/gas_refill/track_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/track_gas_refill.dart @@ -25,7 +25,7 @@ class _TrackGasRefillPageState extends State with TickerProv GasRefillProvider _gasRefillProvider; UserProvider _userProvider; SettingProvider _settingProvider; - bool mostRecent = false; + bool mostRecent = true; @override Widget build(BuildContext context) { @@ -49,6 +49,7 @@ class _TrackGasRefillPageState extends State with TickerProv await _gasRefillProvider.getRequests( user: _userProvider.user, host: _settingProvider.host, + mostRecent: mostRecent, ); }, child: Stack( @@ -86,6 +87,7 @@ class _TrackGasRefillPageState extends State with TickerProv value: mostRecent, onChange: (value) async { mostRecent = value; + _gasRefillProvider.reset(); await _gasRefillProvider.getRequests( user: _userProvider.user, host: _settingProvider.host, @@ -101,6 +103,7 @@ class _TrackGasRefillPageState extends State with TickerProv await _gasRefillProvider.getRequests( user: _userProvider.user, host: _settingProvider.host, + mostRecent: mostRecent, ); }, items: _gasRefillProvider.items,