import 'dart:async'; import 'dart:developer'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:user_repository/user_repository.dart'; part 'setting_event.dart'; part 'setting_state.dart'; class SettingBloc extends Bloc { final UserRepository _userRepository; late final StreamSubscription _authSubscription; SettingBloc({required UserRepository userRepository}) : _userRepository = userRepository, super(SettingInitial()) { _authSubscription = _userRepository.isAuthenticated().listen((isAuthenticated) { if (!isAuthenticated) { try { emit(SettingLogoutSuccess()); } catch (e) { log('xd Error en el settings bloc ${e.toString()}'); } } }); on(_onSettingLogoutRequest); } void _onSettingLogoutRequest( SettingLogoutRequest event, Emitter emit) async { await _userRepository.logOut(); } @override Future close() { _authSubscription.cancel(); return super.close(); } }