8 changed files with 235 additions and 213 deletions
			
			
		@ -0,0 +1,51 @@ | 
				
			|||||||
 | 
					part of '../neon.dart'; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ignore: prefer_mixin | 
				
			||||||
 | 
					class AppRouter extends RouterDelegate<Account> with ChangeNotifier, PopNavigatorRouterDelegateMixin<Account> { | 
				
			||||||
 | 
					  AppRouter({ | 
				
			||||||
 | 
					    required this.navigatorKey, | 
				
			||||||
 | 
					    required this.accountsBloc, | 
				
			||||||
 | 
					    required this.onThemeChanged, | 
				
			||||||
 | 
					  }); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  final AccountsBloc accountsBloc; | 
				
			||||||
 | 
					  final Function(NextcloudTheme? theme) onThemeChanged; | 
				
			||||||
 | 
					  final _globalPopups = const GlobalPopups(); | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  final GlobalKey<NavigatorState> navigatorKey; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  Future setNewRoutePath(final Account? configuration) async {} | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  Account? get currentConfiguration => accountsBloc.activeAccount.valueOrNull; | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  @override | 
				
			||||||
 | 
					  Widget build(final BuildContext context) => Navigator( | 
				
			||||||
 | 
					        key: navigatorKey, | 
				
			||||||
 | 
					        onPopPage: (final route, final result) => route.didPop(result), | 
				
			||||||
 | 
					        pages: [ | 
				
			||||||
 | 
					          if (currentConfiguration == null) ...[ | 
				
			||||||
 | 
					            const MaterialPage( | 
				
			||||||
 | 
					              child: LoginPage(), | 
				
			||||||
 | 
					            ), | 
				
			||||||
 | 
					          ] else ...[ | 
				
			||||||
 | 
					            MaterialPage( | 
				
			||||||
 | 
					              child: Scaffold( | 
				
			||||||
 | 
					                resizeToAvoidBottomInset: false, | 
				
			||||||
 | 
					                body: Stack( | 
				
			||||||
 | 
					                  children: [ | 
				
			||||||
 | 
					                    _globalPopups, | 
				
			||||||
 | 
					                    HomePage( | 
				
			||||||
 | 
					                      account: currentConfiguration!, | 
				
			||||||
 | 
					                      onThemeChanged: onThemeChanged, | 
				
			||||||
 | 
					                    ), | 
				
			||||||
 | 
					                  ], | 
				
			||||||
 | 
					                ), | 
				
			||||||
 | 
					              ), | 
				
			||||||
 | 
					            ), | 
				
			||||||
 | 
					          ], | 
				
			||||||
 | 
					        ], | 
				
			||||||
 | 
					      ); | 
				
			||||||
 | 
					} | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue