diff --git a/docker/index.html b/docker/index.html
index 5080562..444998f 100644
--- a/docker/index.html
+++ b/docker/index.html
@@ -4169,8 +4169,23 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
return map[nevoCat] || 'overig';
}
+ /** Flatten mixed entries (items + meal-groups) naar uniform {item, portie} array */
+ function flattenEntries(entries) {
+ const result = [];
+ entries.forEach(entry => {
+ if (entry.type === 'meal') {
+ entry.items.forEach(e => result.push({ item: e.item, portie: e.portie }));
+ } else {
+ result.push({ item: entry.item, portie: entry.portie });
+ }
+ });
+ return result;
+ }
+
/** Genereer een slimme, menselijke maaltijdnaam op basis van de categorieën */
function suggestMealName(items) {
+ // Unwrap meal-group entries first
+ items = flattenEntries(items);
if (!items || items.length === 0) return '';
if (items.length === 1) return shortItemName(items[0].item.naam);
@@ -4273,8 +4288,11 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
function saveCurrentMomentAsMeal(momentId) {
const dayData = getOrCreateDay(activeDate);
- const items = dayData[momentId] || [];
- if (items.length === 0) return;
+ const rawItems = dayData[momentId] || [];
+ if (rawItems.length === 0) return;
+
+ // Flatten: unwrap meal-group entries into uniform {item, portie} items
+ const items = flattenEntries(rawItems);
// Calculate total kh
let khTotaal = 0;
@@ -4337,7 +4355,7 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
maaltijden.push({
id: 'm' + Date.now(),
naam: name,
- items: items.map(e => ({ item: e.item, portie: e.portie })),
+ items: items,
khTotaal: Math.round(khTotaal)
});
saveMaaltijden();
diff --git a/index.html b/index.html
index 5080562..444998f 100644
--- a/index.html
+++ b/index.html
@@ -4169,8 +4169,23 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
return map[nevoCat] || 'overig';
}
+ /** Flatten mixed entries (items + meal-groups) naar uniform {item, portie} array */
+ function flattenEntries(entries) {
+ const result = [];
+ entries.forEach(entry => {
+ if (entry.type === 'meal') {
+ entry.items.forEach(e => result.push({ item: e.item, portie: e.portie }));
+ } else {
+ result.push({ item: entry.item, portie: entry.portie });
+ }
+ });
+ return result;
+ }
+
/** Genereer een slimme, menselijke maaltijdnaam op basis van de categorieën */
function suggestMealName(items) {
+ // Unwrap meal-group entries first
+ items = flattenEntries(items);
if (!items || items.length === 0) return '';
if (items.length === 1) return shortItemName(items[0].item.naam);
@@ -4273,8 +4288,11 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
function saveCurrentMomentAsMeal(momentId) {
const dayData = getOrCreateDay(activeDate);
- const items = dayData[momentId] || [];
- if (items.length === 0) return;
+ const rawItems = dayData[momentId] || [];
+ if (rawItems.length === 0) return;
+
+ // Flatten: unwrap meal-group entries into uniform {item, portie} items
+ const items = flattenEntries(rawItems);
// Calculate total kh
let khTotaal = 0;
@@ -4337,7 +4355,7 @@ button:active, .btn:active, .meal-card-main:active, .dagboek-item:active, .food-
maaltijden.push({
id: 'm' + Date.now(),
naam: name,
- items: items.map(e => ({ item: e.item, portie: e.portie })),
+ items: items,
khTotaal: Math.round(khTotaal)
});
saveMaaltijden();
diff --git a/playwright.config.js b/playwright.config.js
index 76683c5..14765c5 100644
--- a/playwright.config.js
+++ b/playwright.config.js
@@ -4,26 +4,11 @@ module.exports = defineConfig({
testDir: './tests',
timeout: 30000,
expect: { timeout: 10000 },
- retries: 1,
- fullyParallel: false,
- workers: 1,
+ retries: 0,
use: {
baseURL: 'https://eetdagboek.vantwout.dev',
headless: true,
viewport: { width: 390, height: 844 }, // iPhone 14 size
ignoreHTTPSErrors: true,
- screenshot: 'only-on-failure',
- video: 'retain-on-failure',
- trace: 'retain-on-failure',
},
- projects: [
- {
- name: 'mobile',
- use: { viewport: { width: 375, height: 667 } },
- },
- {
- name: 'desktop',
- use: { viewport: { width: 1280, height: 720 } },
- },
- ],
});