diff --git a/lib/main.dart b/lib/main.dart index 7790390..f5997de 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,12 +1,18 @@ import 'package:crab_ui/contact.dart'; +import 'package:crab_ui/email.dart'; import 'package:flutter/material.dart'; +import 'package:provider/provider.dart'; import 'home_page.dart'; import 'login.dart'; - +import 'package:go_router/go_router.dart'; +import 'routingHandler.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); - runApp(HyM()); + runApp(ChangeNotifierProvider( + create: (context) => AuthService(), + child: HyM(), + )); } class HyM extends StatelessWidget { @@ -15,22 +21,56 @@ class HyM extends StatelessWidget { @override Widget build(BuildContext context) { - return MaterialApp( + final GoRouter _router = GoRouter( + // refreshListenable: , + initialLocation: '/', + routes: [ + GoRoute( + path: "/", + builder: (context, state) => SplashScreen(), + ), + GoRoute( + path: "/login", + builder: (context, state) => const LoginPage(), + ), + GoRoute( + path: "/home", + builder: (context, state) => HomeScreen(), + ), + GoRoute( + path: "/contacts", + builder: (context, state) => ContactsPage(), + ), + GoRoute( + path: "/email/:subject/:target/:viewspecs/:emailID", + builder: (context, state) { + final subject = state.pathParameters['subject']!; + final target = state.pathParameters['target']!; + final viewspecs = state.pathParameters['viewspecs']!; + final emailId = state.pathParameters['emailID']!; + return Routinghandler.fromParameters("main anchor", subject, target, viewspecs, emailId); + }), + ]); + return MaterialApp.router( debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: ColorScheme.light(), useMaterial3: true, ), title: 'HyM', + routerConfig: _router, // home: HomeScreen(), - initialRoute: "/", - routes: { - "/": (context) => SplashScreen(), - "/login": (context) => const LoginPage(), - "/home": (context) => HomeScreen(), - "/contacts": (context) => ContactsPage(), - }, + // routes: { + // "/": (context) => SplashScreen(), + // "/login": (context) => const LoginPage(), + // "/home": (context) => HomeScreen(), + // "/contacts": (context) => ContactsPage(), + // GoRoute( + // path: + // ) + // "/email": (context) => EmailListScreen(), + // }, ); } } diff --git a/pubspec.yaml b/pubspec.yaml index c425b10..fd454e1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,6 +30,7 @@ dependencies: html2md: ^1.3.2 markdown_widget: ^2.3.2+8 markdown: ^7.3.0 + go_router: ^16.0.0 dev_dependencies: flutter_test: