changed pagination to selectPage in t d yourTenders
This commit is contained in:
@@ -19,6 +19,7 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
String? errorMessage;
|
||||
TenderApprovalsResponse? data;
|
||||
LikedTendersResponse? likedTendersData;
|
||||
|
||||
// Pagination state for feedback lists
|
||||
bool isLoadingMore = false;
|
||||
bool hasMore = true;
|
||||
@@ -31,6 +32,7 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
bool hasMoreTenders = true;
|
||||
int _tendersOffset = 0;
|
||||
final int _tendersLimit = 10;
|
||||
|
||||
// Filter States
|
||||
DateTimeRange? selectedDateRange;
|
||||
String selectedStatus = 'All';
|
||||
@@ -118,11 +120,12 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
required String feedbackType,
|
||||
bool reset = false,
|
||||
}) async {
|
||||
if (reset) {
|
||||
_offset = 0;
|
||||
hasMore = true;
|
||||
_currentFeedbackType = feedbackType;
|
||||
}
|
||||
if (reset) {
|
||||
_offset = (currentPage - 1) * _limit;
|
||||
hasMore = true;
|
||||
_currentFeedbackType = feedbackType;
|
||||
}
|
||||
|
||||
|
||||
if (!reset && (isLoadingMore || !hasMore)) {
|
||||
return;
|
||||
@@ -258,39 +261,66 @@ class YourTendersViewModel with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> callWithFilter() async {
|
||||
// Clear data before applying filter
|
||||
_clearAllData();
|
||||
Future<void> callWithFilter() async {
|
||||
likedTendersData = null;
|
||||
data = null;
|
||||
isLoading = true;
|
||||
notifyListeners();
|
||||
|
||||
// Make fresh request based on selected status
|
||||
if (selectedStatus == YourTendersStrings.all) {
|
||||
final requestModel = GetTendersRequestModel(
|
||||
status: '',
|
||||
createdFrom: startDateUnix,
|
||||
createdTo: endDateUnix,
|
||||
limit: _tendersLimit,
|
||||
offset: 0,
|
||||
);
|
||||
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: 0,
|
||||
);
|
||||
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;
|
||||
|
||||
int get totalPages {
|
||||
if (likedTendersData?.data?.meta?.pages != null) {
|
||||
return likedTendersData!.data!.meta!.pages!;
|
||||
}
|
||||
if (data?.data?.metadata?.pages != null) {
|
||||
return data!.data!.metadata!.pages!;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
Future<void> jumpToPage(int page) async {
|
||||
currentPage = page;
|
||||
_offset = (page - 1) * _limit;
|
||||
_tendersOffset = (page - 1) * _tendersLimit;
|
||||
|
||||
likedTendersData = null;
|
||||
data = null;
|
||||
hasMore = true;
|
||||
hasMoreTenders = true;
|
||||
|
||||
await callWithFilter();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user