251 lines
9.2 KiB
Dart
Executable File
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(),
|
|
),
|
|
],
|
|
);
|