Track Gaz Refills [Most Recent]

design_3.0_demo_module
zaid_daoud 3 years ago
parent c52d7cd527
commit 232713f841

@ -49,7 +49,7 @@ class GasRefillProvider extends ChangeNotifier {
Future<int> getRequests({ Future<int> getRequests({
@required String host, @required String host,
@required User user, @required User user,
bool mostRecent, @required bool mostRecent,
}) async { }) async {
if (isLoading == true) return -2; if (isLoading == true) return -2;
isLoading = true; isLoading = true;
@ -59,24 +59,17 @@ class GasRefillProvider extends ChangeNotifier {
Map<String, dynamic> body = {}; Map<String, dynamic> body = {};
body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1; body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1;
body["pageSize"] = pageItemNumber; body["pageSize"] = pageItemNumber;
body["mostRecent"] = mostRecent;
print("url:${URLs.getGasRefill}:body:$body"); print("url:${URLs.getGasRefill}:body:$body");
response = await ApiManager.instance.post( response = await ApiManager.instance.post(URLs.getGasRefill, body: body);
URLs.getGasRefill,
body: body,
);
stateCode = response.statusCode; stateCode = response.statusCode;
if (stateCode >= 200 && stateCode < 300) { if (stateCode >= 200 && stateCode < 300) {
// client's request was successfully received // client's request was successfully received
List requestsListJson = json.decode(response.body)["data"]; List requestsListJson = json.decode(response.body)["data"];
List<GasRefillModel> itemsPage = requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList(); List<GasRefillModel> itemsPage = requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList();
if (mostRecent != null) {
items = [];
} else {
items ??= []; items ??= [];
}
items.addAll(itemsPage); items.addAll(itemsPage);
sortMostRecent(items, mostRecent);
notifyListeners(); notifyListeners();
if (itemsPage.length == pageItemNumber) { if (itemsPage.length == pageItemNumber) {
nextPage = true; nextPage = true;
@ -96,12 +89,6 @@ class GasRefillProvider extends ChangeNotifier {
} }
} }
void sortMostRecent(List<GasRefillModel> models, bool mostRecent) {
if (mostRecent != null) {
models.sort((prev, next) => (mostRecent ?? false) ? next.title.compareTo(prev.title) : prev.title.compareTo(next.title));
}
}
Future<int> createModel({ Future<int> createModel({
@required String host, @required String host,
@required User user, @required User user,

@ -69,7 +69,7 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier {
// client's request was successfully received // client's request was successfully received
List requestsListJson = json.decode(utf8.decode(response.bodyBytes)); List requestsListJson = json.decode(utf8.decode(response.bodyBytes));
List<Visit> _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList(); List<Visit> _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList();
if (visits == null) visits = []; visits ??= [];
visits.addAll(_visits); visits.addAll(_visits);
if (_visits.length == pageItemNumber) { if (_visits.length == pageItemNumber) {
nextPage = true; nextPage = true;

@ -25,7 +25,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
GasRefillProvider _gasRefillProvider; GasRefillProvider _gasRefillProvider;
UserProvider _userProvider; UserProvider _userProvider;
SettingProvider _settingProvider; SettingProvider _settingProvider;
bool mostRecent = false; bool mostRecent = true;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -49,6 +49,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
mostRecent: mostRecent,
); );
}, },
child: Stack( child: Stack(
@ -86,6 +87,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
value: mostRecent, value: mostRecent,
onChange: (value) async { onChange: (value) async {
mostRecent = value; mostRecent = value;
_gasRefillProvider.reset();
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
@ -101,6 +103,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
mostRecent: mostRecent,
); );
}, },
items: _gasRefillProvider.items, items: _gasRefillProvider.items,

Loading…
Cancel
Save