feat: 在食物库页面中集成每日营养数据刷新功能,优化饮食记录成功后的用户体验;移除营养目标计算逻辑以简化组件

This commit is contained in:
richarjiang
2025-09-09 08:31:32 +08:00
parent 1de4b9fe4c
commit 9ccd15319e
2 changed files with 8 additions and 4 deletions

View File

@@ -3,9 +3,11 @@ import { FoodDetailModal } from '@/components/model/food/FoodDetailModal';
import { HeaderBar } from '@/components/ui/HeaderBar';
import { Colors } from '@/constants/Colors';
import { DEFAULT_IMAGE_FOOD } from '@/constants/Image';
import { useAppDispatch } from '@/hooks/redux';
import { useFoodLibrary, useFoodSearch } from '@/hooks/useFoodLibrary';
import { addDietRecord, type CreateDietRecordDto } from '@/services/dietRecords';
import { foodLibraryApi, type CreateCustomFoodDto } from '@/services/foodLibraryApi';
import { fetchDailyNutritionData } from '@/store/nutritionSlice';
import type { FoodItem, MealType, SelectedFoodItem } from '@/types/food';
import { Ionicons } from '@expo/vector-icons';
import { Image } from 'expo-image';
@@ -39,6 +41,7 @@ export default function FoodLibraryScreen() {
const mealType = (params.mealType as MealType) || 'breakfast';
// Redux hooks
const dispatch = useAppDispatch();
const { categories, loading, error, clearErrors, loadFoodLibrary } = useFoodLibrary();
const { searchResults, searchLoading, search, clearResults } = useFoodSearch();
@@ -176,7 +179,11 @@ export default function FoodLibraryScreen() {
await addDietRecord(dietRecordData);
}
// 记录成功后清空选择列表并返回
// 记录成功后,刷新当天的营养数据
const today = new Date();
await dispatch(fetchDailyNutritionData(today));
// 清空选择列表并返回
setSelectedFoodItems([]);
router.back();
} catch (error) {

View File

@@ -108,9 +108,6 @@ export function NutritionRadarCard({
}: NutritionRadarCardProps) {
const [currentMealType] = useState<'breakfast' | 'lunch' | 'dinner' | 'snack'>('breakfast');
const [showFoodOverlay, setShowFoodOverlay] = useState(false);
// 计算营养目标
const calorieGoal = nutritionGoals?.calories ?? 2000;
const proteinGoal = nutritionGoals?.proteinGoal ?? 50;
const nutritionStats = useMemo(() => {
return [