fix: recepty přesnuty k jídlům
feat: přidána podpora fotek
This commit is contained in:
1 parent
efed5e6e86
commit
e13f7ce8e5
39 files changed
+1266
-511
No files matched your search
@@ -123,7 +123,7 @@ export default function ActivityModal({ isOpen, date, entry, onClose, onSaved }:
|
||||
? response.data.activities.entries.find(item => item.id === entry.id)
|
||||
: [...response.data.activities.entries].sort((a, b) => a.createdAt.localeCompare(b.createdAt)).pop();
|
||||
if (saved) {
|
||||
// Šablona z jednoho cviku; víc jich jde spojit na stránce Šablony
|
||||
// Šablona z jednoho cviku; víc jich jde spojit na stránce Tréninky
|
||||
await createWorkoutTemplateFromActivities({
|
||||
body: { date: saved.date, name: saved.name, ids: [saved.id] },
|
||||
});
|
||||
|
||||
@@ -6,9 +6,9 @@ import { faPlay, faClockRotateLeft } from "@fortawesome/free-solid-svg-icons";
|
||||
import {
|
||||
MealSuggestion, MealTemplate, MealType, addMeal, applyMealTemplate, getMealHistory, getMealTemplates,
|
||||
} from "../../../../types";
|
||||
import { MEAL_TYPES_IN_ORDER, MEAL_TYPE_ICONS, MEAL_TYPE_NAMES, TemplateTab } from "../../enums";
|
||||
import { MEAL_TYPES_IN_ORDER, MEAL_TYPE_ICONS, MEAL_TYPE_NAMES, RecipeFilter } from "../../enums";
|
||||
import { describeMealSuggestion, describeMealTemplate, getMealKey, normalizeSearch, parseMultiplierInput } from "../../Utils";
|
||||
import { SABLONY_URL } from "../../routes";
|
||||
import { JIDLA_URL } from "../../routes";
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean,
|
||||
@@ -114,7 +114,7 @@ const ApplyMealModal = ({ isOpen, date, onClose, onApplied }: Readonly<Props>) =
|
||||
<div className="empty-title">Zatím nemáte co vybírat</div>
|
||||
<p className="empty-description">
|
||||
Každé zapsané jídlo se tu příště nabídne. Vařená jídla si můžete zapsat jako
|
||||
recept na stránce Šablony.
|
||||
recept u jídla na stránce Jídla.
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
@@ -135,7 +135,7 @@ const ApplyMealModal = ({ isOpen, date, onClose, onApplied }: Readonly<Props>) =
|
||||
<Form.Label>Založit jako</Form.Label>
|
||||
<Form.Select
|
||||
value={mealType}
|
||||
title="Bez volby se jídlo z historie založí jako oběd a recept pod svým chodem"
|
||||
title="Bez volby se jídlo založí jako oběd"
|
||||
onChange={event => setMealType(event.target.value as MealType | '')}
|
||||
>
|
||||
<option value="">— výchozí —</option>
|
||||
@@ -218,7 +218,7 @@ const ApplyMealModal = ({ isOpen, date, onClose, onApplied }: Readonly<Props>) =
|
||||
<Modal.Footer>
|
||||
<Button
|
||||
variant="outline-secondary"
|
||||
onClick={() => { onClose(); navigate(SABLONY_URL, { state: { tab: TemplateTab.RECEPTY } }); }}
|
||||
onClick={() => { onClose(); navigate(JIDLA_URL, { state: { recipeFilter: RecipeFilter.S_RECEPTEM } }); }}
|
||||
>
|
||||
Spravovat recepty
|
||||
</Button>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { faPlay, faLayerGroup, faDumbbell } from "@fortawesome/free-solid-svg-ic
|
||||
import { DayOverview, WorkoutItemKind, WorkoutTemplate, applyWorkoutTemplate, getWorkoutTemplates } from "../../../../types";
|
||||
import { ACTIVITY_UNIT_SHORT } from "../../enums";
|
||||
import { formatCalories, formatQuantityWithSets } from "../../Utils";
|
||||
import { SABLONY_URL } from "../../routes";
|
||||
import { TRENINKY_URL } from "../../routes";
|
||||
|
||||
type Props = {
|
||||
isOpen: boolean,
|
||||
@@ -70,7 +70,7 @@ const ApplyWorkoutModal = ({ isOpen, date, onClose, onApplied }: Readonly<Props>
|
||||
<div className="empty-state">
|
||||
<div className="empty-icon"><FontAwesomeIcon icon={faDumbbell} /></div>
|
||||
<div className="empty-title">Zatím nemáte žádnou šablonu</div>
|
||||
<p className="empty-description">Vytvořit si ji můžete na stránce Šablony.</p>
|
||||
<p className="empty-description">Vytvořit si ji můžete na stránce Tréninky.</p>
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -95,7 +95,7 @@ const ApplyWorkoutModal = ({ isOpen, date, onClose, onApplied }: Readonly<Props>
|
||||
<Modal.Footer>
|
||||
<Button
|
||||
variant="outline-secondary"
|
||||
onClick={() => { onClose(); navigate(SABLONY_URL); }}
|
||||
onClick={() => { onClose(); navigate(TRENINKY_URL); }}
|
||||
>
|
||||
Spravovat šablony
|
||||
</Button>
|
||||
|
||||
@@ -139,7 +139,6 @@ export default function MealModal({ isOpen, date, entry, onClose, onSaved }: Rea
|
||||
setPickedSuggestion(recipe.name);
|
||||
setForm(current => mergeSuggestion(current, {
|
||||
name: recipe.name,
|
||||
...(recipe.mealType ? { mealType: recipe.mealType } : {}),
|
||||
source: recipe.source ?? '',
|
||||
price: formatPriceInput(recipe.price),
|
||||
pricePer100g: '',
|
||||
|
||||
Reference in new issue
Block a user