Fixed pagination tenders for desktop and
added new config for notification
This commit is contained in:
@@ -54,6 +54,8 @@ class TendersViewModel with ChangeNotifier {
|
||||
|
||||
int currentPage = 1;
|
||||
int _currentOffset = 0;
|
||||
int _totalPages = 0;
|
||||
int get totalPages => _totalPages;
|
||||
static const int _pageSize = 10;
|
||||
bool _hasMoreData = true;
|
||||
|
||||
@@ -117,6 +119,14 @@ class TendersViewModel with ChangeNotifier {
|
||||
getTenderFeedback(_tendersResponse!.data!.tenders!.first.id!);
|
||||
getTenderApprovals(_tendersResponse!.data!.tenders!.first.id!);
|
||||
}
|
||||
if (_tendersResponse?.meta?.pages != null) {
|
||||
_totalPages = _tendersResponse!.meta!.pages!;
|
||||
print('Total pages: $_totalPages');
|
||||
} else {
|
||||
_totalPages = 1;
|
||||
print('Total pages not available, fallback to 1');
|
||||
}
|
||||
notifyListeners();
|
||||
break;
|
||||
case Error<TendersResponse>():
|
||||
_errorMessage = result.error.toString();
|
||||
@@ -500,4 +510,35 @@ class TendersViewModel with ChangeNotifier {
|
||||
_tenderApprovalErrorMessage = null;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void jumpToPage(int page) async {
|
||||
final meta = tendersResponse?.meta;
|
||||
if (meta?.pages == null) {
|
||||
return;
|
||||
}
|
||||
if (page < 1 || page > meta!.pages!) {
|
||||
return;
|
||||
}
|
||||
|
||||
currentPage = page;
|
||||
_currentOffset = (page - 1) * _pageSize;
|
||||
|
||||
final result = await _tendersRepository.getTenders(
|
||||
limit: _pageSize,
|
||||
offset: _currentOffset,
|
||||
);
|
||||
|
||||
switch (result) {
|
||||
case Ok<TendersResponse>():
|
||||
_tendersResponse = result.value;
|
||||
break;
|
||||
case Error<TendersResponse>():
|
||||
_errorMessage = result.error.toString();
|
||||
break;
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user