68 lines
2.2 KiB
Dart
68 lines
2.2 KiB
Dart
import 'package:go_router/go_router.dart';
|
|
import 'package:provider/provider.dart';
|
|
import 'package:seshat/data/repositories/auth_repository.dart';
|
|
import 'package:seshat/routing/routes.dart';
|
|
import 'package:seshat/ui/add_page/view_model/add_view_model.dart';
|
|
import 'package:seshat/ui/add_page/widgets/add_page.dart';
|
|
import 'package:seshat/ui/auth/viewmodel/login_view_model.dart';
|
|
import 'package:seshat/ui/auth/widgets/login_page.dart';
|
|
import 'package:seshat/ui/home_page/home_page.dart';
|
|
import 'package:seshat/ui/sell_page/view_model/sell_view_model.dart';
|
|
import 'package:seshat/ui/sell_page/widgets/sell_page.dart';
|
|
|
|
GoRouter router(AuthRepository authRepository) => GoRouter(
|
|
initialLocation: Routes.add,
|
|
redirect: (context, state) async {
|
|
final loggedIn = await context.read<AuthRepository>().isLoggedIn;
|
|
final logginIn = state.matchedLocation == Routes.login;
|
|
|
|
if (!loggedIn) {
|
|
return Routes.login;
|
|
}
|
|
|
|
if (logginIn) {
|
|
return Routes.add;
|
|
}
|
|
|
|
return null;
|
|
},
|
|
refreshListenable: authRepository,
|
|
routes: [
|
|
GoRoute(
|
|
path: Routes.home,
|
|
pageBuilder: (context, state) => NoTransitionPage(child: HomePage()),
|
|
routes: [
|
|
GoRoute(
|
|
path: Routes.add,
|
|
pageBuilder: (context, state) {
|
|
final viewModel = AddViewModel(
|
|
ownerRepository: context.read(),
|
|
bookRepository: context.read(),
|
|
bookInstanceRepository: context.read(),
|
|
);
|
|
return NoTransitionPage(child: AddPage(viewModel: viewModel));
|
|
},
|
|
// routes: [
|
|
// GoRoute(path: Routes.addForm),
|
|
// GoRoute(path: Routes.addOwner),
|
|
// GoRoute(path: Routes.addPrice),
|
|
// ],
|
|
),
|
|
GoRoute(
|
|
path: Routes.sell,
|
|
pageBuilder: (context, state) {
|
|
final viewModel = SellViewModel();
|
|
return NoTransitionPage(child: SellPage(viewModel: viewModel));
|
|
},
|
|
),
|
|
GoRoute(
|
|
path: Routes.login,
|
|
pageBuilder: (context, state) {
|
|
final viewModel = LoginViewModel(authRepository: context.read());
|
|
return NoTransitionPage(child: LoginPage(viewModel: viewModel));
|
|
},
|
|
),
|
|
],
|
|
),
|
|
],
|
|
);
|