76 lines
2.3 KiB
Dart
76 lines
2.3 KiB
Dart
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';
|
|
|
|
part 'my_user_event.dart';
|
|
part 'my_user_state.dart';
|
|
|
|
class MyUserBloc extends Bloc<MyUserEvent, MyUserState> {
|
|
final UserRepository _userRepository;
|
|
|
|
MyUserBloc({required UserRepository myUserRepository})
|
|
: _userRepository = myUserRepository,
|
|
super(const MyUserState.loading()) {
|
|
_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 _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());
|
|
// }
|
|
// }
|
|
}
|