after
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -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 {}
|
||||
@@ -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 {}
|
||||
Reference in New Issue
Block a user