splash_bloc.dart 979 B

123456789101112131415161718192021222324252627282930313233343536
  1. import 'package:app_flowy/user/domain/auth_state.dart';
  2. import 'package:app_flowy/user/domain/i_splash.dart';
  3. import 'package:flutter_bloc/flutter_bloc.dart';
  4. import 'package:freezed_annotation/freezed_annotation.dart';
  5. part 'splash_bloc.freezed.dart';
  6. class SplashBloc extends Bloc<SplashEvent, SplashState> {
  7. final ISplashUser authImpl;
  8. SplashBloc(this.authImpl) : super(SplashState.initial()) {
  9. on<SplashEvent>((event, emit) async {
  10. await event.map(
  11. getUser: (val) async {
  12. final authState = await authImpl.currentUserProfile();
  13. emit(state.copyWith(auth: authState));
  14. },
  15. );
  16. });
  17. }
  18. }
  19. @freezed
  20. class SplashEvent with _$SplashEvent {
  21. const factory SplashEvent.getUser() = _GetUser;
  22. }
  23. @freezed
  24. class SplashState with _$SplashState {
  25. const factory SplashState({
  26. required AuthState auth,
  27. }) = _SplashState;
  28. factory SplashState.initial() => const SplashState(
  29. auth: AuthState.initial(),
  30. );
  31. }