Files
prosappco/lib/blocs/setting_bloc/setting_bloc.dart
T
2024-02-19 20:36:45 -05:00

42 lines
1.1 KiB
Dart

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<SettingEvent, SettingState> {
final UserRepository _userRepository;
late final StreamSubscription<bool> _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<SettingLogoutRequest>(_onSettingLogoutRequest);
}
void _onSettingLogoutRequest(
SettingLogoutRequest event, Emitter<SettingState> emit) async {
await _userRepository.logOut();
}
@override
Future<void> close() {
_authSubscription.cancel();
return super.close();
}
}