feat: nutrition trend/history view (v0.69.0)
Extends GET /api/v1/users/me/nutrition-diary with a `range` query param (7/30/90) that switches it into trend mode -- daily calorie/macro totals bucketed from the same cooking-history rows the single-day diary already reads, with zero-filled days so the chart has a continuous x-axis. New NutritionTrend component reuses the existing hand-rolled TimeSeriesChart (previously admin-only, now imported from user-facing code too) for the calorie line, plus simple average-macro stat tiles below it. Nutrition page now has Diary/Trend tabs instead of just the diary. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -686,7 +686,12 @@
|
||||
"noEntries": "Nothing logged for this day. Mark a recipe as \"cooked\" to see it here.",
|
||||
"servingsLabel": "{count, plural, one {1 serving} other {{count} servings}}",
|
||||
"nutritionUnknownBadge": "Nutrition unknown",
|
||||
"unknownNote": "{count, plural, one {1 entry has no nutrition data and isn't included in the totals above.} other {{count} entries have no nutrition data and aren't included in the totals above.}}"
|
||||
"unknownNote": "{count, plural, one {1 entry has no nutrition data and isn't included in the totals above.} other {{count} entries have no nutrition data and aren't included in the totals above.}}",
|
||||
"tabDiary": "Diary",
|
||||
"tabTrend": "Trend",
|
||||
"trendCaloriesTitle": "Calories over time",
|
||||
"trendRangeDays": "{count} days",
|
||||
"trendDailyAvg": "avg {value}/day"
|
||||
},
|
||||
"explore": {
|
||||
"title": "Explore",
|
||||
|
||||
@@ -686,7 +686,12 @@
|
||||
"noEntries": "Rien n'est enregistré pour ce jour. Marquez une recette comme « cuisinée » pour la voir ici.",
|
||||
"servingsLabel": "{count, plural, one {1 portion} other {{count} portions}}",
|
||||
"nutritionUnknownBadge": "Nutrition inconnue",
|
||||
"unknownNote": "{count, plural, one {1 entrée n'a pas de données nutritionnelles et n'est pas incluse dans les totaux ci-dessus.} other {{count} entrées n'ont pas de données nutritionnelles et ne sont pas incluses dans les totaux ci-dessus.}}"
|
||||
"unknownNote": "{count, plural, one {1 entrée n'a pas de données nutritionnelles et n'est pas incluse dans les totaux ci-dessus.} other {{count} entrées n'ont pas de données nutritionnelles et ne sont pas incluses dans les totaux ci-dessus.}}",
|
||||
"tabDiary": "Journal",
|
||||
"tabTrend": "Tendance",
|
||||
"trendCaloriesTitle": "Calories dans le temps",
|
||||
"trendRangeDays": "{count} jours",
|
||||
"trendDailyAvg": "moy. {value}/jour"
|
||||
},
|
||||
"explore": {
|
||||
"title": "Explorer",
|
||||
|
||||
Reference in New Issue
Block a user