splash_bloc.dart 997 B

12345678910111213141516171819202122232425262728293031323334353637
  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. @override
  10. Stream<SplashState> mapEventToState(SplashEvent event) async* {
  11. yield* event.map(
  12. getUser: (val) async* {
  13. final authState = await authImpl.currentUserProfile();
  14. yield state.copyWith(auth: authState);
  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. }