import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:tm_app/core/theme/colors.dart'; import 'package:tm_app/core/utils/size_config.dart'; import 'package:tm_app/views/notification/strings/notification_strings.dart'; class PageSelectionDialog extends StatefulWidget { final int totalPages; final int currentPage; const PageSelectionDialog({ required this.totalPages, required this.currentPage, super.key, }); @override State createState() => _PageSelectionDialogState(); } class _PageSelectionDialogState extends State { late int selectedPage; @override void initState() { super.initState(); selectedPage = widget.currentPage; } @override Widget build(BuildContext context) { return AlertDialog( backgroundColor: AppColors.backgroundColor, insetPadding: EdgeInsets.symmetric( horizontal: 16.0.w(), vertical: 16.0.h(), ), title: Text( '${NotificationStrings.selectPage} (Current: ${widget.currentPage})', style: TextStyle( fontSize: 16.0.sp(), fontWeight: FontWeight.w500, color: AppColors.grey80, ), ), content: SizedBox( width: 200, height: 300, child: ListView.builder( itemCount: widget.totalPages, itemBuilder: (context, index) { final pageNumber = index + 1; return ListTile( leading: Radio( value: pageNumber, groupValue: selectedPage, activeColor: AppColors.mainBlue, onChanged: (value) { setState(() { selectedPage = value!; }); context.pop(value); }, ), title: Text( '$pageNumber', style: TextStyle( fontSize: 16.0.sp(), fontWeight: FontWeight.w500, color: AppColors.grey80, ), ), onTap: () { setState(() { selectedPage = pageNumber; }); context.pop(pageNumber); }, ); }, ), ), ); } }