new project stable version
This commit is contained in:
59
lib/presentation/viewmodel/edit_profile_bloc.dart
Normal file
59
lib/presentation/viewmodel/edit_profile_bloc.dart
Normal file
@@ -0,0 +1,59 @@
|
||||
import 'package:be_happy/domain/entities/user_profile.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import '../../domain/usecase/get_profile_usecase.dart';
|
||||
import '../../domain/usecase/update_profile_usecase.dart';
|
||||
import '../event/edit_profile_event.dart';
|
||||
import '../event/profile_event.dart';
|
||||
import '../state/edit_profile_state.dart';
|
||||
import '../state/profile_state.dart';
|
||||
|
||||
class EditProfileBloc
|
||||
extends Bloc<EditProfileEvent, EditProfileState> {
|
||||
final UpdateProfileUseCase updateProfileUseCase;
|
||||
final GetProfileUseCase getProfileUseCase;
|
||||
|
||||
EditProfileBloc(this.updateProfileUseCase, this.getProfileUseCase)
|
||||
: super(EditProfileState.initial()) {
|
||||
|
||||
on<EditProfileStarted>(_onStarted);
|
||||
|
||||
on<EditProfileSubmitted>(_onSubmitted);
|
||||
}
|
||||
|
||||
Future<void> _onSubmitted(
|
||||
EditProfileSubmitted event,
|
||||
Emitter<EditProfileState> emit,
|
||||
) async {
|
||||
emit(state.copyWith(isSaving: true));
|
||||
|
||||
try {
|
||||
final result = await updateProfileUseCase(event.profile);
|
||||
|
||||
if (result != null) {
|
||||
emit(state.copyWith(isSaving: false, isSuccess: true));
|
||||
} else {
|
||||
emit(state.copyWith(isSaving: false, error: "Не удалось обновить профиль"));
|
||||
}
|
||||
} catch (e) {
|
||||
emit(state.copyWith(isSaving: false, error: e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onStarted(
|
||||
EditProfileStarted event,
|
||||
Emitter<EditProfileState> emit,
|
||||
) async {
|
||||
emit(state.copyWith(isSaving: true));
|
||||
|
||||
print("EDIT BLOC STARTED");
|
||||
try {
|
||||
final profile = await getProfileUseCase();
|
||||
|
||||
emit(state.copyWith(profile: profile, isSaving: false, isSuccess: false));
|
||||
} catch (e) {
|
||||
emit(state.copyWith(isSaving: false, error: e.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user