onufitness_mobile/lib/screens/echoboard/widget/pagination_widget.dart
2026-01-13 11:36:24 +05:30

58 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:onufitness/constants/color_constant.dart';
import 'package:onufitness/constants/text_constant.dart';
import 'package:onufitness/screens/echoboard/controllers/connection_and_tribe_controller.dart';
Widget showsUserListPagination(SocialConnectionController controller) {
return Obx(() {
// Get the correct total count and calculate total pages
final totalCount = controller.usersData.value?.data?.totalCount ?? 0;
final totalPages =
totalCount > 0 ? (totalCount / controller.pageSize).ceil() : 1;
if (totalCount == 0 || totalCount < 1) {
return Container();
}
return Container(
padding: const EdgeInsets.symmetric(vertical: 15),
color: pageBackGroundColor,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
IconButton(
icon: Icon(Icons.chevron_left, size: veryVeryLargeSizeText),
onPressed:
controller.currentPage.value > 1
? () => controller.onPageChanged(
controller.currentPage.value - 1,
)
: null,
),
SizedBox(width: 10.w),
Text(
'Page ${controller.currentPage.value} of $totalPages',
style: TextStyle(
fontWeight: FontWeight.w600,
fontSize: regularSizeText,
),
),
SizedBox(width: 10.w),
IconButton(
icon: Icon(Icons.chevron_right, size: veryVeryLargeSizeText),
onPressed:
controller.currentPage.value < totalPages
? () => controller.onPageChanged(
controller.currentPage.value + 1,
)
: null,
),
],
),
);
});
}