| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | import 'package:app_flowy/startup/startup.dart'; | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  | import 'package:app_flowy/user/infrastructure/repos/auth_repo.dart'; | 
					
						
							|  |  |  | import 'package:app_flowy/user/presentation/sign_in_screen.dart'; | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | import 'package:app_flowy/user/presentation/sign_up_screen.dart'; | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  | import 'package:app_flowy/user/presentation/skip_log_in_screen.dart'; | 
					
						
							|  |  |  | import 'package:app_flowy/user/presentation/welcome_screen.dart'; | 
					
						
							|  |  |  | import 'package:app_flowy/workspace/infrastructure/repos/user_repo.dart'; | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  | import 'package:app_flowy/workspace/presentation/home/home_screen.dart'; | 
					
						
							|  |  |  | import 'package:flowy_infra/time/duration.dart'; | 
					
						
							| 
									
										
										
										
											2021-07-25 22:09:52 +08:00
										 |  |  | import 'package:flowy_infra_ui/widget/route/animation.dart'; | 
					
						
							| 
									
										
										
										
											2021-12-19 21:29:33 +08:00
										 |  |  | import 'package:flowy_sdk/protobuf/flowy-user-data-model/protobuf.dart' show UserProfile; | 
					
						
							| 
									
										
										
										
											2022-01-27 20:39:54 +08:00
										 |  |  | import 'package:flowy_sdk/protobuf/flowy-folder-data-model/protobuf.dart'; | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  | import 'package:flutter/material.dart'; | 
					
						
							| 
									
										
										
										
											2021-07-13 13:14:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-31 08:15:49 +08:00
										 |  |  | class AuthRouter { | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   void pushForgetPasswordScreen(BuildContext context) { | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |     // TODO: implement showForgetPasswordScreen
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   void pushWelcomeScreen(BuildContext context, UserProfile userProfile) { | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  |     getIt<SplashRoute>().pushWelcomeScreen(context, userProfile); | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   void pushSignUpScreen(BuildContext context) { | 
					
						
							| 
									
										
										
										
											2021-09-05 22:52:20 +08:00
										 |  |  |     Navigator.of(context).push( | 
					
						
							|  |  |  |       PageRoutes.fade( | 
					
						
							| 
									
										
										
										
											2022-01-31 08:15:49 +08:00
										 |  |  |         () => SignUpScreen(router: getIt<AuthRouter>()), | 
					
						
							| 
									
										
										
										
											2021-09-05 22:52:20 +08:00
										 |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-10 23:39:51 +08:00
										 |  |  |   void pushHomeScreen(BuildContext context, UserProfile profile, CurrentWorkspaceSetting workspaceSetting) { | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  |     Navigator.push( | 
					
						
							|  |  |  |       context, | 
					
						
							| 
									
										
										
										
											2021-11-10 23:39:51 +08:00
										 |  |  |       PageRoutes.fade(() => HomeScreen(profile, workspaceSetting), RouteDurations.slow.inMilliseconds * .001), | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class SplashRoute { | 
					
						
							|  |  |  |   Future<void> pushWelcomeScreen(BuildContext context, UserProfile user) async { | 
					
						
							|  |  |  |     final repo = UserRepo(user: user); | 
					
						
							|  |  |  |     final screen = WelcomeScreen(repo: repo); | 
					
						
							|  |  |  |     final workspaceId = await Navigator.of(context).push( | 
					
						
							|  |  |  |       PageRoutes.fade( | 
					
						
							|  |  |  |         () => screen, | 
					
						
							|  |  |  |         RouteDurations.slow.inMilliseconds * .001, | 
					
						
							|  |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     pushHomeScreen(context, repo.user, workspaceId); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void pushHomeScreen(BuildContext context, UserProfile userProfile, CurrentWorkspaceSetting workspaceSetting) { | 
					
						
							|  |  |  |     Navigator.push( | 
					
						
							|  |  |  |       context, | 
					
						
							|  |  |  |       PageRoutes.fade(() => HomeScreen(userProfile, workspaceSetting), RouteDurations.slow.inMilliseconds * .001), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void pushSignInScreen(BuildContext context) { | 
					
						
							|  |  |  |     Navigator.push( | 
					
						
							|  |  |  |       context, | 
					
						
							|  |  |  |       PageRoutes.fade(() => SignInScreen(router: getIt<AuthRouter>()), RouteDurations.slow.inMilliseconds * .001), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void pushSkipLoginScreen(BuildContext context) { | 
					
						
							|  |  |  |     Navigator.push( | 
					
						
							|  |  |  |       context, | 
					
						
							|  |  |  |       PageRoutes.fade( | 
					
						
							|  |  |  |           () => SkipLogInScreen( | 
					
						
							|  |  |  |                 router: getIt<AuthRouter>(), | 
					
						
							|  |  |  |                 authRepo: getIt<AuthRepository>(), | 
					
						
							|  |  |  |               ), | 
					
						
							|  |  |  |           RouteDurations.slow.inMilliseconds * .001), | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |