Fixed pagination bug in tender like filter and fixed current page bug in same page

This commit is contained in:
llsajjad
2025-09-14 13:56:20 +03:30
parent 451fbb6e55
commit d47c85ffd4
6 changed files with 60 additions and 50 deletions
+40 -41
View File
@@ -120,12 +120,11 @@ class YourTendersViewModel with ChangeNotifier {
required String feedbackType,
bool reset = false,
}) async {
if (reset) {
_offset = (currentPage - 1) * _limit;
hasMore = true;
_currentFeedbackType = feedbackType;
}
if (reset) {
_offset = (currentPage - 1) * _limit;
hasMore = true;
_currentFeedbackType = feedbackType;
}
if (!reset && (isLoadingMore || !hasMore)) {
return;
@@ -226,6 +225,7 @@ if (reset) {
// Clear data when status changes
_clearAllData();
selectedStatus = status;
currentPage = 1;
notifyListeners();
}
@@ -261,43 +261,42 @@ if (reset) {
notifyListeners();
}
Future<void> callWithFilter() async {
likedTendersData = null;
data = null;
isLoading = true;
notifyListeners();
Future<void> callWithFilter() async {
likedTendersData = null;
data = null;
isLoading = true;
notifyListeners();
if (selectedStatus == YourTendersStrings.all) {
final requestModel = GetTendersRequestModel(
status: '',
createdFrom: startDateUnix,
createdTo: endDateUnix,
limit: _tendersLimit,
offset: _tendersOffset,
);
await getTenders(requestModel: requestModel, reset: true);
} else if (selectedStatus == YourTendersStrings.tendersSubmitted) {
final requestModel = GetTendersRequestModel(
status: TenderApprovalStatus.submitted.value,
createdFrom: startDateUnix,
createdTo: endDateUnix,
limit: _tendersLimit,
offset: _tendersOffset,
);
await getTenders(requestModel: requestModel, reset: true);
} else if (selectedStatus == YourTendersStrings.likeTenders) {
await getTendersFeedback(
feedbackType: TenderFeedback.liked.value,
reset: true,
);
} else if (selectedStatus == YourTendersStrings.dislikeTenders) {
await getTendersFeedback(
feedbackType: TenderFeedback.disliked.value,
reset: true,
);
if (selectedStatus == YourTendersStrings.all) {
final requestModel = GetTendersRequestModel(
status: '',
createdFrom: startDateUnix,
createdTo: endDateUnix,
limit: _tendersLimit,
offset: _tendersOffset,
);
await getTenders(requestModel: requestModel, reset: true);
} else if (selectedStatus == YourTendersStrings.tendersSubmitted) {
final requestModel = GetTendersRequestModel(
status: TenderApprovalStatus.submitted.value,
createdFrom: startDateUnix,
createdTo: endDateUnix,
limit: _tendersLimit,
offset: _tendersOffset,
);
await getTenders(requestModel: requestModel, reset: true);
} else if (selectedStatus == YourTendersStrings.likeTenders) {
await getTendersFeedback(
feedbackType: TenderFeedback.liked.value,
reset: true,
);
} else if (selectedStatus == YourTendersStrings.dislikeTenders) {
await getTendersFeedback(
feedbackType: TenderFeedback.disliked.value,
reset: true,
);
}
}
}
int currentPage = 1;