tenders pagination added

This commit is contained in:
amirrezaghabeli
2025-08-19 08:08:31 +03:30
parent 0c1b27fd1e
commit da6b1f28cf
4 changed files with 111 additions and 13 deletions
@@ -94,11 +94,19 @@ class _MainTendersSliderState extends State<MainTendersSlider> {
setState(() {
currentPage = index + 1;
});
// Fetch feedback for the new tender if not already loaded
final viewModel = context.read<TendersViewModel>();
if (!viewModel.hasFeedbackForTender(widget.tenders[index].id!)) {
viewModel.getTenderFeedback(widget.tenders[index].id!);
}
// Check if we need to load more tenders (when user reaches near the end)
if (index >= widget.tenders.length - 1 &&
viewModel.hasMoreData &&
!viewModel.isLoadingMore) {
viewModel.loadMoreTenders();
}
},
itemBuilder: (context, index) {
final tender = widget.tenders[index];
@@ -142,13 +150,31 @@ class _MainTendersSliderState extends State<MainTendersSlider> {
}
Widget _pageNumberText() {
return Text(
'$currentPage/${widget.tenders.length}',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey,
),
final viewModel = context.watch<TendersViewModel>();
return Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
'$currentPage/${widget.tenders.length}',
style: TextStyle(
fontSize: 14.0.sp(),
fontWeight: FontWeight.w500,
color: AppColors.grey,
),
),
if (viewModel.isLoadingMore)
Padding(
padding: EdgeInsets.only(top: 4.0.h()),
child: SizedBox(
width: 16.0.w(),
height: 16.0.w(),
child: CircularProgressIndicator(
strokeWidth: 2.0,
color: AppColors.jellyBean,
),
),
),
],
);
}