| 
									
										
										
										
											2023-05-21 18:53:59 +08:00
										 |  |  | import 'package:appflowy/startup/startup.dart'; | 
					
						
							|  |  |  | import 'package:appflowy/user/application/auth/auth_service.dart'; | 
					
						
							| 
									
										
										
										
											2023-02-26 16:27:17 +08:00
										 |  |  | import 'package:appflowy/user/domain/auth_state.dart'; | 
					
						
							| 
									
										
										
										
											2021-06-19 23:41:19 +08:00
										 |  |  | import 'package:flutter_bloc/flutter_bloc.dart'; | 
					
						
							|  |  |  | import 'package:freezed_annotation/freezed_annotation.dart'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | part 'splash_bloc.freezed.dart'; | 
					
						
							| 
									
										
										
										
											2021-06-19 23:41:19 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  | class SplashBloc extends Bloc<SplashEvent, SplashState> { | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  |   SplashBloc() : super(SplashState.initial()) { | 
					
						
							| 
									
										
										
										
											2022-01-04 22:44:03 +08:00
										 |  |  |     on<SplashEvent>((event, emit) async { | 
					
						
							|  |  |  |       await event.map( | 
					
						
							|  |  |  |         getUser: (val) async { | 
					
						
							| 
									
										
										
										
											2023-05-21 18:53:59 +08:00
										 |  |  |           final response = await getIt<AuthService>().getUser(); | 
					
						
							|  |  |  |           final authState = response.fold( | 
					
						
							|  |  |  |             (user) => AuthState.authenticated(user), | 
					
						
							| 
									
										
										
										
											2024-02-24 20:54:10 +07:00
										 |  |  |             (error) => AuthState.unauthenticated(error), | 
					
						
							| 
									
										
										
										
											2022-01-31 08:24:29 +08:00
										 |  |  |           ); | 
					
						
							| 
									
										
										
										
											2022-01-04 22:44:03 +08:00
										 |  |  |           emit(state.copyWith(auth: authState)); | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2021-06-19 23:41:19 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2021-07-24 15:05:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | @freezed | 
					
						
							| 
									
										
										
										
											2021-10-09 10:09:31 +08:00
										 |  |  | class SplashEvent with _$SplashEvent { | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   const factory SplashEvent.getUser() = _GetUser; | 
					
						
							| 
									
										
										
										
											2021-07-24 15:05:47 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @freezed | 
					
						
							| 
									
										
										
										
											2021-10-09 10:09:31 +08:00
										 |  |  | class SplashState with _$SplashState { | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   const factory SplashState({ | 
					
						
							| 
									
										
										
										
											2021-07-24 15:05:47 +08:00
										 |  |  |     required AuthState auth, | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   }) = _SplashState; | 
					
						
							| 
									
										
										
										
											2021-07-24 15:05:47 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 16:18:34 +08:00
										 |  |  |   factory SplashState.initial() => const SplashState( | 
					
						
							| 
									
										
										
										
											2021-07-24 15:05:47 +08:00
										 |  |  |         auth: AuthState.initial(), | 
					
						
							|  |  |  |       ); | 
					
						
							|  |  |  | } |