diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..b021114 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/src/components/BottomNav.vue b/src/components/BottomNav.vue new file mode 100644 index 0000000..5489ddb --- /dev/null +++ b/src/components/BottomNav.vue @@ -0,0 +1,67 @@ + + + + {{ tab.icon }} + {{ tab.label }} + + + + + + + diff --git a/src/components/CheckboxItem.vue b/src/components/CheckboxItem.vue new file mode 100644 index 0000000..9b7a3f2 --- /dev/null +++ b/src/components/CheckboxItem.vue @@ -0,0 +1,58 @@ + + + + + {{ item.name }} + + ✕ + + + + + + diff --git a/src/components/MealCard.vue b/src/components/MealCard.vue new file mode 100644 index 0000000..9443670 --- /dev/null +++ b/src/components/MealCard.vue @@ -0,0 +1,126 @@ + + + {{ dayName }} + + + {{ slot.label }} + + + + {{ item }} + ✕ + + + + + + + + + + + + + + + diff --git a/src/data/conversions.json b/src/data/conversions.json new file mode 100644 index 0000000..fb21e36 --- /dev/null +++ b/src/data/conversions.json @@ -0,0 +1,16 @@ +{ + "pollo": { "forno": { "yield": 0.75 }, "padella": { "yield": 0.70 } }, + "manzo": { "forno": { "yield": 0.70 }, "padella": { "yield": 0.72 } }, + "maiale": { "forno": { "yield": 0.68 }, "padella": { "yield": 0.70 } }, + "salmone": { "forno": { "yield": 0.80 }, "padella": { "yield": 0.78 } }, + "tonno": { "forno": { "yield": 0.75 } }, + "uova": { "bollite": { "yield": 0.88 } }, + "riso": { "bollito": { "yield": 2.50 } }, + "pasta": { "bollita": { "yield": 2.20 } }, + "lenticchie": { "bollite": { "yield": 2.30 } }, + "zucchine": { "padella": { "yield": 0.80 }, "bollite": { "yield": 0.85 } }, + "carote": { "bollite": { "yield": 0.90 }, "forno": { "yield": 0.85 } }, + "patate": { "forno": { "yield": 0.75 }, "bollite": { "yield": 0.90 } }, + "spinaci": { "padella": { "yield": 0.35 }, "bolliti": { "yield": 0.30 } }, + "broccoli": { "bolliti": { "yield": 0.85 }, "forno": { "yield": 0.80 } } +} diff --git a/src/pages/Converter.vue b/src/pages/Converter.vue new file mode 100644 index 0000000..f9b91ea --- /dev/null +++ b/src/pages/Converter.vue @@ -0,0 +1,169 @@ + + + Conversione crudo / cotto + + + + + + + + {{ r.food }} — {{ r.method }} + + + + + + {{ selected.food }} — {{ selected.method }} + cambia + + + + crudo → cotto + cotto → crudo + + + + + g + + + + {{ result }} + g + {{ direction === 'rawToCooked' ? 'cotti' : 'crudi' }} + + + + + + + + diff --git a/src/pages/MealPlanner.vue b/src/pages/MealPlanner.vue new file mode 100644 index 0000000..b4a5612 --- /dev/null +++ b/src/pages/MealPlanner.vue @@ -0,0 +1,45 @@ + + + Pasti della settimana + addItem(day.id, slot, text)" + @remove="(slot, idx) => removeItem(day.id, slot, idx)" + /> + + + + diff --git a/src/pages/ShoppingList.vue b/src/pages/ShoppingList.vue new file mode 100644 index 0000000..39c4b61 --- /dev/null +++ b/src/pages/ShoppingList.vue @@ -0,0 +1,96 @@ + + + Lista della spesa + + + + + + + + + + + + Nessun elemento nella lista. + + Svuota lista + + + + + + diff --git a/src/utils/conversion.js b/src/utils/conversion.js new file mode 100644 index 0000000..081342c --- /dev/null +++ b/src/utils/conversion.js @@ -0,0 +1,2 @@ +export const rawToCooked = (food, method, raw, db) => raw * db[food][method].yield +export const cookedToRaw = (food, method, cooked, db) => cooked / db[food][method].yield diff --git a/src/utils/storage.js b/src/utils/storage.js new file mode 100644 index 0000000..03a1f5b --- /dev/null +++ b/src/utils/storage.js @@ -0,0 +1,5 @@ +export const save = (key, val) => localStorage.setItem(key, JSON.stringify(val)) +export const load = (key, def) => { + const v = localStorage.getItem(key) + return v ? JSON.parse(v) : def +}
Nessun elemento nella lista.