added go_router for deeplinking

This commit is contained in:
Juan Marulanda De Los Rios 2025-07-15 12:26:32 -04:00
parent 0b117abd88
commit bde05197ae
2 changed files with 51 additions and 10 deletions

View File

@ -1,12 +1,18 @@
import 'package:crab_ui/contact.dart'; import 'package:crab_ui/contact.dart';
import 'package:crab_ui/email.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'home_page.dart'; import 'home_page.dart';
import 'login.dart'; import 'login.dart';
import 'package:go_router/go_router.dart';
import 'routingHandler.dart';
void main() { void main() {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
runApp(HyM()); runApp(ChangeNotifierProvider(
create: (context) => AuthService(),
child: HyM(),
));
} }
class HyM extends StatelessWidget { class HyM extends StatelessWidget {
@ -15,22 +21,56 @@ class HyM extends StatelessWidget {
@override @override
Widget build(BuildContext context) { 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, debugShowCheckedModeBanner: false,
theme: ThemeData( theme: ThemeData(
colorScheme: ColorScheme.light(), colorScheme: ColorScheme.light(),
useMaterial3: true, useMaterial3: true,
), ),
title: 'HyM', title: 'HyM',
routerConfig: _router,
// home: HomeScreen(), // home: HomeScreen(),
initialRoute: "/",
routes: { // routes: {
"/": (context) => SplashScreen(), // "/": (context) => SplashScreen(),
"/login": (context) => const LoginPage(), // "/login": (context) => const LoginPage(),
"/home": (context) => HomeScreen(), // "/home": (context) => HomeScreen(),
"/contacts": (context) => ContactsPage(), // "/contacts": (context) => ContactsPage(),
}, // GoRoute(
// path:
// )
// "/email": (context) => EmailListScreen(),
// },
); );
} }
} }

View File

@ -30,6 +30,7 @@ dependencies:
html2md: ^1.3.2 html2md: ^1.3.2
markdown_widget: ^2.3.2+8 markdown_widget: ^2.3.2+8
markdown: ^7.3.0 markdown: ^7.3.0
go_router: ^16.0.0
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: