fix profile
This commit is contained in:
@@ -1,25 +1,38 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:be_happy/domain/usecase/delete_profile_usecase.dart';
|
||||
import 'package:be_happy/domain/usecase/upload_profile_photo_usecase.dart';
|
||||
import 'package:be_happy/presentation/viewmodel/splash_bloc.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import '../../domain/entities/user_profile.dart';
|
||||
import '../../domain/usecase/get_profile_usecase.dart';
|
||||
import '../../domain/usecase/logout_usecase.dart';
|
||||
import '../../domain/usecase/update_profile_usecase.dart';
|
||||
import '../event/profile_event.dart';
|
||||
import '../event/spalsh_event.dart';
|
||||
import '../state/profile_state.dart';
|
||||
|
||||
class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
final GetProfileUseCase getProfileUseCase;
|
||||
final UploadProfilePhotoUsecase uploadProfilePhotoUsecase;
|
||||
final UpdateProfileUseCase updateProfileUseCase;
|
||||
final DeleteProfileUsecase deleteProfileUsecase;
|
||||
final LogoutUseCase logoutUseCase;
|
||||
final SplashBloc splashBloc;
|
||||
|
||||
|
||||
ProfileBloc(this.getProfileUseCase,
|
||||
this.uploadProfilePhotoUsecase,
|
||||
this.updateProfileUseCase)
|
||||
this.updateProfileUseCase,
|
||||
this.deleteProfileUsecase,
|
||||
this.logoutUseCase,
|
||||
this.splashBloc)
|
||||
: super(ProfileState.initial()) {
|
||||
on<ProfileStarted>(_onStarted);
|
||||
on<ProfileUpdated>(_onUpdated);
|
||||
on<ProfilePhotoUpdated>(_onPhotoUploaded);
|
||||
on<DeleteProfilePressed>(_onDeleteProfilePressed);
|
||||
}
|
||||
|
||||
Future<void> _onStarted(
|
||||
@@ -55,7 +68,6 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
final avatarId = await uploadProfilePhotoUsecase(event.imageFile);
|
||||
|
||||
if (avatarId != null) {
|
||||
// Отправляем PATCH запрос с новым avatarId
|
||||
await updateProfileUseCase(UserProfile(
|
||||
name: '',
|
||||
birthDate: '',
|
||||
@@ -72,4 +84,14 @@ class ProfileBloc extends Bloc<ProfileEvent, ProfileState> {
|
||||
emit(state.copyWith(isLoading: false, error: "Ошибка загрузки: ${e.toString()}"));
|
||||
}
|
||||
}
|
||||
|
||||
FutureOr<void> _onDeleteProfilePressed(DeleteProfilePressed event, Emitter<ProfileState> emit) async {
|
||||
try {
|
||||
|
||||
await deleteProfileUsecase();
|
||||
splashBloc.add(AuthLogoutRequested());
|
||||
} catch (e) {
|
||||
emit(state.copyWith(isLoading: false, error: "Ошибка удаления профиля: ${e.toString()}"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user