Fixed pagination for your tenders in home

This commit is contained in:
llsajjad
2025-09-07 10:43:54 +03:30
parent cd827ecbe4
commit 468556acb3
11 changed files with 486 additions and 93 deletions
+17 -9
View File
@@ -169,7 +169,8 @@ class DesktopHomePage extends StatelessWidget {
}
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders = homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
return ConstrainedBox(
constraints: BoxConstraints(maxWidth: 740),
child: Align(
@@ -190,16 +191,23 @@ class DesktopHomePage extends StatelessWidget {
Widget _bottomListView(HomeViewModel homeViewModel) {
final controller = ScrollController();
controller.addListener(() {
if (homeViewModel.isRecommendedMode) {
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommandTenders();
}
if (!homeViewModel.isRecommendedMode) {
// YourTenders
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getYourTenders();
}
}
});
} else {
// Recommended
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommendTenders();
}
}
}
return SizedBox(
width: 740,
+13 -3
View File
@@ -163,7 +163,8 @@ class MobileHomePage extends StatelessWidget {
}
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders = homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
return Padding(
padding: EdgeInsets.symmetric(horizontal: 24.0.w()),
child: Text(
@@ -183,11 +184,20 @@ class MobileHomePage extends StatelessWidget {
final controller = ScrollController();
controller.addListener(() {
if (homeViewModel.isRecommendedMode) {
if (!homeViewModel.isRecommendedMode) {
// YourTenders
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommandTenders();
homeViewModel.getYourTenders();
}
}
} else {
// Recommended
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommendTenders();
}
}
}
+17 -9
View File
@@ -195,7 +195,8 @@ class TabletHomePage extends StatelessWidget {
}
Widget _yourTenderText(HomeViewModel homeViewModel) {
final isYourTenders = homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
final isYourTenders =
homeViewModel.data?.data?.tenders!.isNotEmpty ?? false;
return Text(
isYourTenders ? HomeStrings.yourTenders : HomeStrings.recommendedTenders,
style: TextStyle(
@@ -209,16 +210,23 @@ class TabletHomePage extends StatelessWidget {
Widget _bottomListView(HomeViewModel homeViewModel) {
final controller = ScrollController();
controller.addListener(() {
if (homeViewModel.isRecommendedMode) {
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommandTenders();
}
if (!homeViewModel.isRecommendedMode) {
// YourTenders
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getYourTenders();
}
}
});
} else {
// Recommended
if (controller.position.pixels >=
controller.position.maxScrollExtent - 200) {
if (!homeViewModel.isLoadingMore && homeViewModel.hasMore) {
homeViewModel.getHomeRecommendTenders();
}
}
}
return SizedBox(
width: double.infinity,