tecban_mobile/lib/src/router.dart

94 lines
3.1 KiB
Dart
Raw Normal View History

import 'package:tacban/src/app/auth/screens/cadastro.dart';
import 'package:tacban/src/app/auth/screens/codigoverifica.dart';
import 'package:tacban/src/app/auth/screens/login.dart';
import 'package:tacban/src/app/base/screens/navigator.dart';
import 'package:tacban/src/app/base/screens/splash.dart';
2024-01-27 13:01:07 -03:00
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:tacban/src/app/home/screens/categoria_screen.dart';
import 'package:tacban/src/app/home/screens/formulario_screen.dart';
import 'package:tacban/src/app/home/screens/home_screen.dart';
import 'package:tacban/src/app/home/screens/relatorio_screen.dart';
2024-01-27 13:01:07 -03:00
final GlobalKey<NavigatorState> _rootNavigatorKey = GlobalKey<NavigatorState>(debugLabel: 'root');
final GlobalKey<NavigatorState> _shellNavigatorKey = GlobalKey<NavigatorState>(debugLabel: 'shell');
final routerProvider = Provider<GoRouter>((ref) {
return GoRouter(
initialLocation: SlapshScreen.path,
navigatorKey: _rootNavigatorKey,
debugLogDiagnostics: false,
routes: [
GoRoute(
path: SlapshScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const SlapshScreen()
),
GoRoute(
path: LoginScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const LoginScreen()
),
GoRoute(
path: CadastroScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const CadastroScreen()
),
GoRoute(
path: CodigoVerificacaoScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const CodigoVerificacaoScreen()
),
ShellRoute(
navigatorKey: _shellNavigatorKey,
builder: (context, state, child) => NavigatorScreen(child: child),
routes: [
GoRoute(
path: HomeScreen.path,
name: 'inicio_vistoria',
pageBuilder: (_, state) => transitionScreen(
state.pageKey,
child: const HomeScreen(),
)
)
]
),
GoRoute(
path: CategoriaScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) {
String title = state.extra as String;
return CategoriaScreen(title: title);
}
),
GoRoute(
path: FormularioScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const FormularioScreen()
),
GoRoute(
path: RelatorioScreen.path,
parentNavigatorKey: _rootNavigatorKey,
builder: (_, state) => const RelatorioScreen()
),
]
2024-01-27 13:01:07 -03:00
);
});
CustomTransitionPage transitionScreen(LocalKey key, {required Widget child}){
return CustomTransitionPage(
key: key,
child: child,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return FadeTransition(
opacity: CurveTween(
curve: Curves.ease
// curve: Curves.easeInOutCirc
).animate(animation),
child: child,
);
}
);
}