uaestats_fe/lib/config/my_router.dart
2026-05-29 17:45:19 +05:30

251 lines
9.2 KiB
Dart
Executable File

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<String, String>.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<Map<String, dynamic>> filterData = [];
final rawFilter = state.uri.queryParameters['filter_data'];
if (rawFilter != null && rawFilter.isNotEmpty) {
try {
filterData = List<Map<String, dynamic>>.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<String, dynamic> data = state.extra as Map<String, dynamic>;
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: <RouteBase>[
GoRoute(
path: '/features',
name: 'features',
builder: (context, state) => UsingFeatures(),
routes: <RouteBase>[
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: <RouteBase>[
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<String, String>;
return DetailedCountryProfilePage(
countryName: data['countryName']!,
flag: data['flag']!,
countryCode: data['countryCode']!,
);
},
),
GoRoute(
path: '/reportDetail',
builder: (context, state) {
final report = state.extra as Map<String, dynamic>;
return ReportDetailPage(report: report);
},
),
GoRoute(
path: '/contact',
builder: (context, state) => Contact(),
),
GoRoute(
path: '/faq',
builder: (context, state) => FAQPage(),
),
],
);