This commit is contained in:
Felipe
2024-02-16 11:14:01 -05:00
parent 9ca2b62be3
commit d9d6b50d78
15 changed files with 452 additions and 294 deletions
+56 -7
View File
@@ -1,3 +1,6 @@
import 'dart:async';
import 'dart:developer';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:user_repository/user_repository.dart';
@@ -11,16 +14,62 @@ class MyUserBloc extends Bloc<MyUserEvent, MyUserState> {
MyUserBloc({required UserRepository myUserRepository})
: _userRepository = myUserRepository,
super(const MyUserState.loading()) {
on<GetMyUser>(_onGetMyUser);
_userRepository.streamUser().listen((event) {
log('xd ---: ${event}');
if (event == null) {
log('UserChanged: ${event}');
emit(const MyUserState.failure());
} else {
log('UserChanged: ${event}');
emit(MyUserState.success(event!));
}
});
// on<UserChanged>(_onUserChanged);
// _userRepository.user.first.then((user) {
// log('xd: ${user}');
// if (user != null) {
// add(UserChanged(user: user));
// _userSubscription = _userRepository.user.listen((user) {
// log('xd: ${user}');
// add(UserChanged(user: user));
// });
// }
// }).catchError((e) {
// log('xd: ${e}');
// add(UserChanged(user: null));
// });
// on<GetMyUser>(_onGetMyUser);
// _userRepository.user.listen((user) {
// if (user != null) {
// add(GetMyUser(myUserId: user.uid));
// }
// });
// emit(MyUserState.success(MyUser(
// name: 'John', id: '123', email: 'johndoe@gmail.com', picture: '')));
}
void _onGetMyUser(GetMyUser event, Emitter<MyUserState> emit) async {
emit(const MyUserState.loading());
try {
MyUser myUser = await _userRepository.getMyUser(event.myUserId);
emit(MyUserState.success(myUser));
} catch (e) {
void _onUserChanged(UserChanged event, Emitter<MyUserState> emit) {
log('UserChanged: ${event.user}');
if (event.user == null) {
log('UserChanged: ${event.user}');
emit(const MyUserState.failure());
} else {
log('UserChanged: ${event.user}');
emit(MyUserState.success(event.user!));
}
}
// void _onGetMyUser(GetMyUser event, Emitter<MyUserState> emit) async {
// log('GetMyUser: ${event.myUserId}');
// emit(const MyUserState.loading());
// try {
// MyUser myUser = await _userRepository.getMyUser(event.myUserId);
// log('GetMyUser: $myUser');
// emit(MyUserState.success(myUser));
// } catch (e) {
// log('GetMyUser: $e');
// emit(const MyUserState.failure());
// }
// }
}
+14 -5
View File
@@ -4,14 +4,23 @@ abstract class MyUserEvent extends Equatable {
const MyUserEvent();
@override
List<Object> get props => [];
List<Object?> get props => [];
}
class GetMyUser extends MyUserEvent {
final String myUserId;
// class GetMyUser extends MyUserEvent {
// final String myUserId;
const GetMyUser({required this.myUserId});
// const GetMyUser({required this.myUserId});
// @override
// List<Object> get props => [myUserId];
// }
class UserChanged extends MyUserEvent {
final MyUser? user;
const UserChanged({required this.user});
@override
List<Object> get props => [myUserId];
List<Object?> get props => [user];
}