import 'dart:async'; import 'dart:developer'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:user_repository/user_repository.dart'; part 'my_user_event.dart'; part 'my_user_state.dart'; class MyUserBloc extends Bloc { final UserRepository _userRepository; MyUserBloc({required UserRepository myUserRepository}) : _userRepository = myUserRepository, super(const MyUserState.loading()) { _userRepository.streamUser().listen((event) { if (event == null) { emit(const MyUserState.failure()); } else { emit(MyUserState.success(event)); } }); } void _onUserChanged(UserChanged event, Emitter emit) { log('UserChanged: ${event.user}'); if (event.user == null) { log('UserChanged: ${event.user}'); emit(const MyUserState.failure()); } else { log('UserChanged: ${event.user}'); emit(MyUserState.success(event.user!)); } } }