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
@@ -2,22 +2,20 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:user_repository/user_repository.dart';
part 'update_user_info_event.dart';
part 'update_user_info_state.dart';
part 'profile_event.dart';
part 'profile_state.dart';
class UpdateUserInfoBloc
extends Bloc<UpdateUserInfoEvent, UpdateUserInfoState> {
class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
final UserRepository _userRepository;
UpdateUserInfoBloc({required UserRepository userRepository})
ProfileBloc({required UserRepository userRepository})
: _userRepository = userRepository,
super(UpdateUserInfoInitial()) {
on<UploadPicture>(_onUploadPicture);
on<UpdateUserInfo>(_onUpdateUserInfo);
}
void _onUploadPicture(
UploadPicture event, Emitter<UpdateUserInfoState> emit) async {
void _onUploadPicture(UploadPicture event, Emitter<ProfileState> emit) async {
emit(UploadPictureLoading());
try {
String userImage =
@@ -29,7 +27,7 @@ class UpdateUserInfoBloc
}
void _onUpdateUserInfo(
UpdateUserInfo event, Emitter<UpdateUserInfoState> emit) async {
UpdateUserInfo event, Emitter<ProfileState> emit) async {
emit(UpdateUserInfoLoading());
try {
await _userRepository.updateUserInfo(event.userId, {
@@ -1,13 +1,13 @@
part of 'update_user_info_bloc.dart';
part of 'profile_bloc.dart';
abstract class UpdateUserInfoEvent extends Equatable {
const UpdateUserInfoEvent();
abstract class ProfileEvent extends Equatable {
const ProfileEvent();
@override
List<Object> get props => [];
}
class UploadPicture extends UpdateUserInfoEvent {
class UploadPicture extends ProfileEvent {
final String file;
final String userId;
@@ -17,7 +17,7 @@ class UploadPicture extends UpdateUserInfoEvent {
List<Object> get props => [file, userId];
}
class UpdateUserInfo extends UpdateUserInfoEvent {
class UpdateUserInfo extends ProfileEvent {
final String userId;
final String name;
+34
View File
@@ -0,0 +1,34 @@
part of 'profile_bloc.dart';
abstract class ProfileState extends Equatable {
const ProfileState();
@override
List<Object> get props => [];
}
class UpdateUserInfoInitial extends ProfileState {}
class UploadPictureFailure extends ProfileState {}
class UploadPictureLoading extends ProfileState {}
class UploadPictureSuccess extends ProfileState {
final String userImage;
const UploadPictureSuccess(this.userImage);
@override
List<Object> get props => [userImage];
}
class UpdateUserInfoFailure extends ProfileState {}
class UpdateUserInfoLoading extends ProfileState {}
class UpdateUserInfoSuccess extends ProfileState {
const UpdateUserInfoSuccess();
@override
List<Object> get props => [];
}
+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 {}
@@ -1,34 +0,0 @@
part of 'update_user_info_bloc.dart';
abstract class UpdateUserInfoState extends Equatable {
const UpdateUserInfoState();
@override
List<Object> get props => [];
}
class UpdateUserInfoInitial extends UpdateUserInfoState {}
class UploadPictureFailure extends UpdateUserInfoState {}
class UploadPictureLoading extends UpdateUserInfoState {}
class UploadPictureSuccess extends UpdateUserInfoState {
final String userImage;
const UploadPictureSuccess(this.userImage);
@override
List<Object> get props => [userImage];
}
class UpdateUserInfoFailure extends UpdateUserInfoState {}
class UpdateUserInfoLoading extends UpdateUserInfoState {}
class UpdateUserInfoSuccess extends UpdateUserInfoState {
const UpdateUserInfoSuccess();
@override
List<Object> get props => [];
}