bloc
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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';
|
||||
|
||||
class UpdateUserInfoBloc
|
||||
extends Bloc<UpdateUserInfoEvent, UpdateUserInfoState> {
|
||||
final UserRepository _userRepository;
|
||||
|
||||
UpdateUserInfoBloc({required UserRepository userRepository})
|
||||
: _userRepository = userRepository,
|
||||
super(UpdateUserInfoInitial()) {
|
||||
on<UploadPicture>(_onUploadPicture);
|
||||
}
|
||||
|
||||
void _onUploadPicture(
|
||||
UploadPicture event, Emitter<UpdateUserInfoState> emit) async {
|
||||
emit(UploadPictureLoading());
|
||||
try {
|
||||
String userImage =
|
||||
await _userRepository.uploadPicture(event.file, event.userId);
|
||||
emit(UploadPictureSuccess(userImage));
|
||||
} catch (e) {
|
||||
emit(UploadPictureFailure());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
part of 'update_user_info_bloc.dart';
|
||||
|
||||
abstract class UpdateUserInfoEvent extends Equatable {
|
||||
const UpdateUserInfoEvent();
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
}
|
||||
|
||||
class UploadPicture extends UpdateUserInfoEvent {
|
||||
final String file;
|
||||
final String userId;
|
||||
|
||||
const UploadPicture(this.file, this.userId);
|
||||
|
||||
@override
|
||||
List<Object> get props => [file, userId];
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
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];
|
||||
}
|
||||
Reference in New Issue
Block a user