import 'dart:convert'; import 'package:go_router/go_router.dart'; import 'package:uae_stat/config/sessionCheckScreen.dart'; import 'package:uae_stat/lib/features/demography/presentation/screens/demography_screen.dart'; import 'package:uae_stat/lib/features/economy/presentation/screens/economy_screen.dart'; import 'package:uae_stat/lib/features/environment/presentation/screens/environment_screen.dart'; import 'package:uae_stat/lib/features/home/presentation/screens/home_screen.dart'; import 'package:uae_stat/presentation/Screens/app_tour/WelcomePage.dart'; import 'package:uae_stat/presentation/Screens/auth_verification/privacy_policy.dart'; import 'package:uae_stat/presentation/Screens/auth_verification/terms&conditions.dart'; import 'package:uae_stat/lib/features/dataset_detail/presentation/screens/dataset_detail_screen.dart'; import 'package:uae_stat/lib/features/population_growth/presentation/screens/population_growth_screen.dart'; import 'package:uae_stat/presentation/Screens/online_offline_verification/internet_check.dart'; import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/Competitiveness/Detailedcompetitiveness.dart'; import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/Competitiveness/competitiveness.dart'; import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/Country_Profile/DetailedCountryProfilePage.dart'; import 'package:uae_stat/presentation/routes/bottom_bar_routes/tab_routes/Country_Profile/country_profile.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/contactUs.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/notification/notification.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/notification/notification_details.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/AboutTheApp/AboutFCSC.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/AboutTheApp/getStarted.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/AppFeatures.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/howUseTheApp.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/purpose.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/stayUpdate.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/KeyFeatures/useTheApp.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/aboutApp.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer%20Items/user_guide/userguide.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer Items/bookmark.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer Items/feedback.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/Drawer Items/user_guide/features.dart'; final GoRouter router = GoRouter( initialLocation: '/', routes: [ GoRoute( path: '/', builder: (context, state) => const SessionCheckScreen(), ), GoRoute( path: '/internetcheck', builder: (context, state) => InternetCheckScreen(), ), GoRoute( path: '/welcomePage', builder: (context, state) => Welcomepage(), ), GoRoute( path: '/myhomepage', redirect: (context, state) => '/home', ), GoRoute( path: '/home', builder: (context, state) => const HomeScreen(), ), GoRoute( path: '/demography', builder: (context, state) => const DemographyScreen(), ), GoRoute( path: '/economy', builder: (context, state) => const EconomyScreen(), ), GoRoute( path: '/social', redirect: (context, state) => '/demography', ), GoRoute( path: '/environment', builder: (context, state) => const EnvironmentScreen(), ), GoRoute( path: '/chartScreen/:dataSets', redirect: (context, state) { final dataSets = state.pathParameters['dataSets']!; final query = Map.from(state.uri.queryParameters); return Uri( path: '/populationGrowth/$dataSets', queryParameters: query.isEmpty ? null : query, ).toString(); }, ), GoRoute( path: '/populationGrowth/:dataSets', builder: (context, state) { final dataSets = state.pathParameters['dataSets']!; final bgColor = state.uri.queryParameters['bgColor'] ?? '0x00594C'; final mainTopic = state.uri.queryParameters['mainTopic'] ?? ''; final title = state.uri.queryParameters['title'] ?? ''; final key = state.uri.queryParameters['key'] ?? 'uaenumbers'; final routeKpi = state.uri.queryParameters['kpi'] ?? ''; final kpi = routeKpi.isNotEmpty ? routeKpi : dataSets; List> filterData = []; final rawFilter = state.uri.queryParameters['filter_data']; if (rawFilter != null && rawFilter.isNotEmpty) { try { filterData = List>.from(jsonDecode(rawFilter)); } catch (_) { filterData = []; } } return DatasetDetailScreen( dataSets: dataSets, bgColor: bgColor, mainTopic: mainTopic, title: title, keyParam: key, kpi: kpi, filter_data: filterData, ); }, ), GoRoute( path: '/termsandconditions', builder: (context, state) => TermsOfUse(), ), GoRoute( path: '/privacy_policy', builder: (context, state) => PrivacyPolicy(), ), GoRoute( path: '/feedback', builder: (context, state) => FeedbackForm(), ), GoRoute( path: '/notification', builder: (context, state) => NotificationPage(), ), GoRoute( path: '/notification_details', builder: (context, state) { final Map data = state.extra as Map; return NotificationDetails( title: data['title'] ?? '', message: data['message'] ?? '', date: data['date'] ?? '', category: data['category'] ?? '', id: data['id'] ?? '', backNavigation: data['backNavigation'] ?? '', ); }, ), GoRoute( path: '/user-guide', builder: (context, state) => Userguide(), routes: [ GoRoute( path: '/features', name: 'features', builder: (context, state) => UsingFeatures(), routes: [ GoRoute( path: 'whoUseApp', name: 'whoUseApp', builder: (context, state) => WhoUseTheApp(), ), GoRoute( path: 'howUseApp', name: 'howUseApp', builder: (context, state) => HowUseTheApp(), ), GoRoute( path: 'purpose', name: 'purpose', builder: (context, state) => Purpose(), ), GoRoute( path: 'stayUpdated', name: 'stayUpdated', builder: (context, state) => StayUpdate(), ), GoRoute( path: 'appFeatures', name: 'appFeatures', builder: (context, state) => AppFeatures(), ), ], ), GoRoute( path: 'aboutApp', builder: (context, state) => aboutTheApp(), routes: [ GoRoute( path: 'aboutFCSC', name: 'aboutFCSC', builder: (context, state) => aboutFCSC(), ), GoRoute( path: 'getStarted', name: 'getStarted', builder: (context, state) => GetStarted(), ), ], ), GoRoute( path: '/faq', name: 'faq', builder: (context, state) => FAQPage(), ), ], ), GoRoute( path: '/bookmark', builder: (context, state) => BookMark(), ), GoRoute( path: '/uaenumbers', redirect: (context, state) => '/home', ), GoRoute( path: '/competitiveness', builder: (context, state) => Competitiveness(), ), GoRoute( path: '/countryprofile', builder: (context, state) => const ListCountriesRoute(), ), GoRoute( path: '/country-profile-detail', builder: (context, state) { final data = state.extra as Map; return DetailedCountryProfilePage( countryName: data['countryName']!, flag: data['flag']!, countryCode: data['countryCode']!, ); }, ), GoRoute( path: '/reportDetail', builder: (context, state) { final report = state.extra as Map; return ReportDetailPage(report: report); }, ), GoRoute( path: '/contact', builder: (context, state) => Contact(), ), GoRoute( path: '/faq', builder: (context, state) => FAQPage(), ), ], );