| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | import 'package:app_flowy/startup/startup.dart'; | 
					
						
							| 
									
										
										
										
											2021-10-09 10:09:31 +08:00
										 |  |  | import 'package:app_flowy/user/domain/i_splash.dart'; | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | import 'package:app_flowy/user/presentation/sign_up_screen.dart'; | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  | import 'package:app_flowy/workspace/presentation/home/home_screen.dart'; | 
					
						
							| 
									
										
										
										
											2021-07-13 13:14:49 +08:00
										 |  |  | import 'package:dartz/dartz.dart'; | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  | 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; | 
					
						
							| 
									
										
										
										
											2021-07-21 15:43:05 +08:00
										 |  |  | import 'package:app_flowy/user/domain/i_auth.dart'; | 
					
						
							|  |  |  | import 'package:app_flowy/user/infrastructure/repos/auth_repo.dart'; | 
					
						
							| 
									
										
										
										
											2021-12-14 18:04:51 +08:00
										 |  |  | import 'package:flowy_sdk/protobuf/flowy-error/errors.pb.dart'; | 
					
						
							| 
									
										
										
										
											2021-12-19 21:29:33 +08:00
										 |  |  | import 'package:flowy_sdk/protobuf/flowy-core-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
										 |  |  | 
 | 
					
						
							|  |  |  | class AuthImpl extends IAuth { | 
					
						
							|  |  |  |   AuthRepository repo; | 
					
						
							|  |  |  |   AuthImpl({ | 
					
						
							|  |  |  |     required this.repo, | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											2021-12-14 18:04:51 +08:00
										 |  |  |   Future<Either<UserProfile, FlowyError>> signIn(String? email, String? password) { | 
					
						
							| 
									
										
										
										
											2021-07-13 13:14:49 +08:00
										 |  |  |     return repo.signIn(email: email, password: password); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											2021-12-14 18:04:51 +08:00
										 |  |  |   Future<Either<UserProfile, FlowyError>> signUp(String? name, String? password, String? email) { | 
					
						
							| 
									
										
										
										
											2021-11-08 23:15:29 +08:00
										 |  |  |     return repo.signUp(name: name, password: password, email: email); | 
					
						
							| 
									
										
										
										
											2021-07-13 13:14:49 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-07-13 13:23:03 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											2021-12-14 18:04:51 +08:00
										 |  |  |   Future<Either<Unit, FlowyError>> signOut() { | 
					
						
							| 
									
										
										
										
											2021-07-13 13:23:03 +08:00
										 |  |  |     return repo.signOut(); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-07-13 13:14:49 +08:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class AuthRouterImpl extends IAuthRouter { | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   void pushForgetPasswordScreen(BuildContext context) { | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |     // TODO: implement showForgetPasswordScreen
 | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   void pushWelcomeScreen(BuildContext context, UserProfile userProfile) { | 
					
						
							| 
									
										
										
										
											2021-09-08 13:50:20 +08:00
										 |  |  |     getIt<ISplashRoute>().pushWelcomeScreen(context, userProfile); | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											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( | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |         () => SignUpScreen(router: getIt<IAuthRouter>()), | 
					
						
							| 
									
										
										
										
											2021-09-05 22:52:20 +08:00
										 |  |  |       ), | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2021-07-25 18:04:16 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2021-11-08 19:19:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   @override | 
					
						
							| 
									
										
										
										
											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
										 |  |  | } |