updated error handling, consultant rating layout and complaining logic

This commit is contained in:
Username1548
2025-02-28 19:18:01 +07:00
parent e5b293db79
commit 0cdd40102f
86 changed files with 3853 additions and 279 deletions

View File

@@ -7,6 +7,7 @@ import 'package:eatvio_app/core/widgets/custom_outlined_button.dart';
import 'package:eatvio_app/core/widgets/custom_text_form_field.dart';
import 'package:eatvio_app/core/widgets/loader.dart';
import 'package:eatvio_app/core/widgets/main_background_bouble.dart';
import 'package:eatvio_app/core/widgets/show_error_dialog.dart';
import 'package:eatvio_app/core/widgets/success_published_diet_bottom_sheet.dart';
import 'package:eatvio_app/features/create_diet/presentation/cubit/create_diet_cubit.dart';
import 'package:eatvio_app/features/create_diet/presentation/cubit/create_diet_state.dart';
@@ -206,13 +207,19 @@ class _CreateDietScreenContentState extends State<CreateDietScreenContent> {
Loader()
else
CustomOutlinedButton(
onPressed: () {
onPressed: () async {
if (widget.diet != null) {
context.read<CreateDietCubit>().updateDiet(
final result = await context.read<CreateDietCubit>().updateDiet(
widget.diet!.id,
);
if (result == 'error') {
showErrorDialog(context, title: '${s.could_not_update_diet} ${state.dietData.name}');
}
} else {
context.read<CreateDietCubit>().createDiet();
final result = await context.read<CreateDietCubit>().createDiet();
if (result == 'error') {
showErrorDialog(context, title: '${s.could_not_publish_diet} ${state.dietData.name}');
}
}
},
text: widget.diet != null ? s.save : s.publish,

View File

@@ -323,7 +323,7 @@ class CreateDietCubit extends Cubit<CreateDietState> {
Future<String?> createDiet() async {
emit(state.copyWith(isDietPublishing: true));
if (!_isFromValid()) return null;
if (!_isFromValid()) return 'validation';
try {
final image = await ImageCompressUtility.compressFile(File(state.dietData.image!.path));
final dietState = state.dietData.state!;
@@ -342,16 +342,16 @@ class CreateDietCubit extends Cubit<CreateDietState> {
);
emit(state.copyWith(published: dietState != DietState.draft, drafted: dietState == DietState.draft));
return state.dietData.name;
return null;
} on DioException catch (e, stackTrace) {
log(e.toString(), stackTrace: stackTrace);
}
emit(state.copyWith(isDietPublishing: false));
return null;
return 'error';
}
Future<String?> updateDiet(int dietId) async {
if (!_isFromValid()) return null;
if (!_isFromValid()) return 'error';
try {
File? image;
if (state.dietData.image != null) {
@@ -373,7 +373,7 @@ class CreateDietCubit extends Cubit<CreateDietState> {
return null;
} catch (e, st) {
log(e.toString(), stackTrace: st);
return 'Произошла непредвиденная ошибка';
return 'error';
}
}

View File

@@ -1,7 +1,7 @@
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:eatvio_app/core/utils/enums.dart';
import 'package:eatvio_app/core/enums/product_type.dart';
import 'package:eatvio_app/core/utils/localization_utils.dart';
import 'package:eatvio_app/core/utils/string_extentions.dart';
import 'package:eatvio_app/core/widgets/bookmark_button.dart';