refactor(diary): API connect attempt

This commit is contained in:
2024-07-12 13:16:01 +03:00
parent e4cde31d76
commit 551debd450
21 changed files with 999 additions and 299 deletions

View File

@@ -1,5 +1,5 @@
import 'dart:async';
import 'package:eatvio_app/features/diary/models/diary_model.dart';
import 'package:eatvio_app/features/diary/models/meal.dart';
import 'package:eatvio_app/features/diary/repositories/diary_repository.dart';
import 'package:intl/intl.dart';
import 'package:equatable/equatable.dart';
@@ -53,10 +53,10 @@ class DiaryBloc extends Bloc<DiaryEvent, DiaryState> {
) async {
emit(const DiaryState.loading());
try {
final diary =
await diaryRepository.getDiary(await diaryRepository.getDiaryID());
Map<String, int> data = await diaryRepository.getDiaryID();
final int? diaryID = data['id'];
emit(DiaryState.loaded(
diary: diary,
diary: await diaryRepository.getDiary(diaryID ?? 45),
commentController: TextEditingController(),
productNameController: TextEditingController(),
productQuantityController: TextEditingController(),
@@ -359,8 +359,8 @@ class DiaryBloc extends Bloc<DiaryEvent, DiaryState> {
) async {
if (state is DiaryStateLoaded) {
var currentState = state as DiaryStateLoaded;
Meal? meal =
currentState.diary.meals.firstWhere((meal) => meal.id == event.value);
Meal? meal = currentState.diary.meals!
.firstWhere((meal) => meal.id == event.value);
DiaryStateLoaded updatedState = currentState.copyWith(
currentMeal: event.value,

View File

@@ -1,4 +1,7 @@
import 'package:eatvio_app/features/diary/models/diary_model.dart';
import 'package:eatvio_app/features/diary/models/meal.dart';
import 'package:eatvio_app/features/diary/models/photo.dart';
import 'package:eatvio_app/features/diary/models/portion.dart';
import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

View File

@@ -592,6 +592,7 @@ abstract class _$$DiaryStateLoadedImplCopyWith<$Res> {
bool isAdded});
$DiaryModelCopyWith<$Res> get diary;
$MealCopyWith<$Res>? get currentMeal;
}
/// @nodoc
@@ -747,6 +748,18 @@ class __$$DiaryStateLoadedImplCopyWithImpl<$Res>
return _then(_value.copyWith(diary: value));
});
}
@override
@pragma('vm:prefer-inline')
$MealCopyWith<$Res>? get currentMeal {
if (_value.currentMeal == null) {
return null;
}
return $MealCopyWith<$Res>(_value.currentMeal!, (value) {
return _then(_value.copyWith(currentMeal: value));
});
}
}
/// @nodoc

View File

@@ -1,6 +1,9 @@
// ignore_for_file: unused_local_variable
import 'package:eatvio_app/features/diary/models/diary_model.dart';
import 'package:eatvio_app/features/diary/models/meal.dart';
import 'package:eatvio_app/features/diary/models/photo.dart';
import 'package:eatvio_app/features/diary/models/portion.dart';
import 'package:eatvio_app/features/diary/presentation/bloc/diary_bloc.dart';
import 'package:eatvio_app/features/diary/presentation/bloc/diary_state.dart';
import 'package:eatvio_app/locator_service.dart';
@@ -674,12 +677,12 @@ class DiaryScreen extends StatelessWidget {
}
_buildCarousel(BuildContext context, DiaryStateLoaded state) {
if (state.currentMeal!.photos!.isEmpty) {
if (state.currentMeal!.photos.isEmpty) {
return Text("Фото нет");
} else {
return CarouselSlider(
options: CarouselOptions(height: 340.0),
items: state.currentMeal!.photos!.map<Widget>((photo) {
items: state.currentMeal!.photos.map<Widget>((photo) {
return _buildPhoto(
context, photo); // Assuming photos are stored as strings
}).toList(),
@@ -1311,8 +1314,8 @@ bool checkConsumedValues(
return false; // Возвращаем true
}
List<SelectionPopupModel> mealsToDropdown(List<Meal> meals) {
return meals
List<SelectionPopupModel> mealsToDropdown(List<Meal>? meals) {
return meals!
.map((meal) => SelectionPopupModel(
id: meal.id,
title: "Прием пищи ${meal.id}",