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 } }, - }, - ], });