import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:tm_app/core/constants/assets.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'; import 'package:tm_app/views/shared/tablet_navigation_widget.dart'; import 'package:tm_app/views/shared/tender_app_bar.dart'; import '../../shared/main_tab_bar.dart'; import '../widgets/notification_all_tab.dart'; import '../widgets/notification_important_tab.dart'; import '../widgets/notification_unread_tab.dart'; class TabletNotificationPage extends StatefulWidget { const TabletNotificationPage({super.key}); @override State createState() => _TabletNotificationPageState(); } class _TabletNotificationPageState extends State with SingleTickerProviderStateMixin { late TabController controller; @override void initState() { super.initState(); controller = TabController(length: 3, vsync: this); } @override void dispose() { controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { final GlobalKey key = GlobalKey(); return Scaffold( key: key, backgroundColor: AppColors.backgroundColor, appBar: tabletAppBar( title: NotificationStrings.notificationTitle, key: key, ), drawer: TabletNavigationWidget(currentIndex: 3), body: Center( child: SizedBox( width: 720, child: Column( children: [ MainTabBar( controller: controller, titles: [ NotificationStrings.all, NotificationStrings.unread, NotificationStrings.important, ], ), SizedBox(height: 12.0.h()), Padding( padding: EdgeInsetsDirectional.only(end: 24.0.w()), child: Align( alignment: Alignment.centerRight, child: InkWell( onTap: () {}, borderRadius: BorderRadius.circular(99), child: Container( width: 132.0.w(), height: 32.0.h(), decoration: BoxDecoration( color: AppColors.primary20, borderRadius: BorderRadius.circular(99), ), child: Center( child: Text( NotificationStrings.markAllAsReadButton, style: TextStyle( fontSize: 14.0.sp(), fontWeight: FontWeight.w500, color: AppColors.mainBlue, ), ), ), ), ), ), ), SizedBox(height: 12.0.h()), Expanded( child: TabBarView( controller: controller, children: [ NotificationAllTab(), NotificationUnreadTab(), NotificationImportantTab(), ], ), ), SizedBox(height: 10.0.h()), Row( children: [ const Spacer(), Text( 'page', style: TextStyle( fontSize: 13.0.sp(), fontWeight: FontWeight.w300, color: AppColors.grey60, ), ), SizedBox(width: 10.0.w()), InkWell( onTap: () async { final _ = await showDialog( context: context, builder: (context) { return AlertDialog( title: const Text('selectPage'), content: SizedBox( width: 200, height: 300, child: ListView.builder( itemCount: 1, itemBuilder: (context, index) { final pageNumber = index + 1; return ListTile( title: Text( '{LikedTendersStrings.page} $pageNumber', ), onTap: () => Navigator.pop(context, pageNumber), ); }, ), ), ); }, ); }, child: Container( decoration: BoxDecoration( border: Border.all(color: AppColors.grey30, width: 1), borderRadius: BorderRadius.circular(4), ), child: Row( children: [ SizedBox(width: 5.0.w()), Text( 'currentPage', style: TextStyle( fontSize: 14.0.sp(), fontWeight: FontWeight.w500, color: AppColors.grey70, ), ), SizedBox(width: 5.0.w()), SvgPicture.asset(AssetsManager.arrowdownSmall), SizedBox(width: 5.0.w()), ], ), ), ), SizedBox(width: 5.0.w()), Text( 'of', style: TextStyle( fontSize: 14.0.sp(), fontWeight: FontWeight.w400, color: AppColors.grey60, ), ), SizedBox(width: 5.0.w()), Text( 'totalPages', style: TextStyle( fontSize: 13.0.sp(), fontWeight: FontWeight.w400, color: AppColors.grey60, ), ), ], ), SizedBox(height: 30.0.h()), ], ), ), ), ); } }