diff --git a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart index 8228a099..62433ab0 100644 --- a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart +++ b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_bloc.dart @@ -90,7 +90,7 @@ class DiaryEditBloc extends Bloc { // Если текущее состояние - начальное, создаем новое загруженное состояние emit(DiaryEditLoadedState( currentMeal: SelectionPopupModel( - id: 0, title: "Прием пищи 1", isSelected: true), + id: 1, title: "Прием пищи 1", isSelected: true), wakeupExpanded: true, moodExpanded: true, token: token, @@ -208,11 +208,9 @@ class DiaryEditBloc extends Bloc { int diaryID, ) async { String url = - dotenv.env['SERVER_ROOT']! + '/$diaryID/meal/$mealID/mood/fill'; + dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/meal/$mealID/fill'; final credentials = { 'mood': selectedMood, - 'meal_id': mealID, - 'diary_id': diaryID, }; var response = await http.post(Uri.parse(url), @@ -248,10 +246,9 @@ class DiaryEditBloc extends Bloc { TimeOfDay wakeup, int diaryID, ) async { - String url = dotenv.env['SERVER_ROOT']! + '/diary/???'; + String url = dotenv.env['SERVER_ROOT']! + '/diary/$diaryID/wakeUp/fill'; final credentials = { 'wakeup': wakeup, - 'diary_id': diaryID, }; var response = await http.post(Uri.parse(url), @@ -312,8 +309,8 @@ class DiaryEditBloc extends Bloc { currentState.currentMeal?.id, currentState.diaryId); if (response.statusCode == 200) { - currentState.retireController = event.time; - emit(currentState); // Передаем обновленное состояние в emit + updatedState.mealTimeController = event.time; + emit(updatedState); // Передаем обновленное состояние в emit } } } @@ -393,34 +390,32 @@ class DiaryEditBloc extends Bloc { // Отправляем данные по HTTP маршруту и ждем ответ var response = await sendPortionData( currentState.token, - event.name, - event.portion, - event.quantity, + currentState.productNameController?.text, + 'pcs', + int.parse(currentState.productQuantityController!.text), currentState.currentMeal!.id, currentState.diaryId); if (response.statusCode == 200) { - emit(currentState); // Передаем обновленное состояние в emit + emit(updatedState); // Передаем обновленное состояние в emit } } } Future sendPortionData( String? token, - String name, + String? name, String portion, - int quantity, + int? quantity, int? mealID, int diaryID, ) async { - String url = - dotenv.env['SERVER_ROOT']! + '/$diaryID/meal/$mealID/portions/create'; + String url = dotenv.env['SERVER_ROOT']! + + 'diary/$diaryID/meal/$mealID/portions/create'; final credentials = { - 'name': name, + 'product_name': name, 'portion': portion, 'quantity': quantity, - 'meal_id': mealID, - 'diary_id': diaryID, }; var response = await http.post(Uri.parse(url), @@ -502,12 +497,12 @@ class DiaryEditBloc extends Bloc { List fillMealList() { return [ - SelectionPopupModel(id: 0, title: "Прием пищи 1", isSelected: true), - SelectionPopupModel(id: 1, title: "Прием пищи 2"), - SelectionPopupModel(id: 2, title: "Прием пищи 3"), - SelectionPopupModel(id: 3, title: "Прием пищи 4"), - SelectionPopupModel(id: 4, title: "Прием пищи 5"), - SelectionPopupModel(id: 5, title: "Прием пищи 6"), + SelectionPopupModel(id: 1, title: "Прием пищи 1", isSelected: true), + SelectionPopupModel(id: 2, title: "Прием пищи 2"), + SelectionPopupModel(id: 3, title: "Прием пищи 3"), + SelectionPopupModel(id: 4, title: "Прием пищи 4"), + SelectionPopupModel(id: 5, title: "Прием пищи 5"), + SelectionPopupModel(id: 6, title: "Прием пищи 6"), ]; } } diff --git a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_event.dart b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_event.dart index 206e5957..ed6f8e2f 100644 --- a/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_event.dart +++ b/lib/presentation/diary/diary_edit_screen/bloc/diary_edit_event.dart @@ -79,12 +79,9 @@ class ToggleWakeupExpandedEvent extends DiaryEditEvent { } class AddPortionEvent extends DiaryEditEvent { - AddPortionEvent(this.name, this.quantity, this.portion); - final String name; - final int quantity; - final String portion; + AddPortionEvent(); @override - List get props => [name, quantity, portion]; + List get props => []; } class RemovePortionEvent extends DiaryEditEvent { diff --git a/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart b/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart index 8686b834..f61fff96 100644 --- a/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart +++ b/lib/presentation/diary/diary_edit_screen/diary_edit_screen.dart @@ -144,11 +144,14 @@ class DiaryEditScreen extends StatelessWidget { } /// Section Widget - Widget _buildAddProduct(BuildContext context) { + Widget _buildAddProduct(BuildContext context, DiaryEditLoadedState state) { return CustomOutlinedButton( text: "Добавить продукт", margin: EdgeInsets.symmetric(horizontal: 10.h), buttonStyle: CustomButtonStyles.outlinePrimaryTL15, + onPressed: () { + context.read().add(AddPortionEvent()); + }, ); } @@ -311,7 +314,7 @@ class DiaryEditScreen extends StatelessWidget { ), ), SizedBox(height: 30.v), - _buildAddProduct(context), + _buildAddProduct(context, state), SizedBox(height: 30.v), ...state.portions! .map((portion) => _buildProduct(context, portion))