This commit is contained in:
Felipe
2024-02-19 20:36:45 -05:00
parent 997c6047bb
commit 29d18e93e0
15 changed files with 462 additions and 208 deletions
+41
View File
@@ -0,0 +1,41 @@
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();
}
}
+10
View File
@@ -0,0 +1,10 @@
part of 'setting_bloc.dart';
abstract class SettingEvent extends Equatable {
const SettingEvent();
@override
List<Object> get props => [];
}
class SettingLogoutRequest extends SettingEvent {}
+12
View File
@@ -0,0 +1,12 @@
part of 'setting_bloc.dart';
abstract class SettingState extends Equatable {
const SettingState();
@override
List<Object> get props => [];
}
class SettingInitial extends SettingState {}
class SettingLogoutSuccess extends SettingState {}