Commit graph

15 commits

Author SHA1 Message Date
cas
2309cf22ad UX: Glucose inline per eetmoment — nuchter card + inline postprandiale metingen 2026-07-24 19:49:20 +02:00
cas
cfcb77407f chore: sync docker/index.html met glucose feature 2026-07-24 19:36:48 +02:00
cas
809f289a46 fix: wit vlak bij infinite scroll — animation-delay gecapped op batchgrootte
Root cause: --i werd op globalIdx gezet (0–2327) → CSS animation-delay = --i × 50ms
→ item 2000 kreeg 100s delay en was nooit zichtbaar.

Fix: --i = idx % SEARCH_PAGE_SIZE (max 49, delay max 2.45s)
2026-07-24 12:13:27 +02:00
cas
b6c89e548d fix: infinite scroll sneller — rootMargin 1200px + 3 batches per trigger
Was: rootMargin=200px, 1 batch (50 items) per intersection trigger
→ bij snel scrollen moest je wachten of terugscrollen

Nu: rootMargin=1200px, tot 3 batches (150 items) per trigger
→ sentinel wordt 1200px eerder gedetecteerd, batches pre-loaden agressief
→ sentinel blijft ver voor de viewport, nooit meer wachten
2026-07-24 11:17:47 +02:00
cas
35278053a7 test: e2e tests voor infinite scroll — batch loading + search reset
2 nieuwe Playwright tests:
- Sentinels triggeren meer items na scrollIntoView
- Zoekopdracht reset paginering terug naar ≤ SEARCH_PAGE_SIZE

docker/index.html synced met worker-implementatie
2026-07-24 11:13:36 +02:00
cas
1091eb5bf8 fix: closeDialog toegevoegd in showPortieEditDialog — bottom sheet sluit nu correct
Root cause: showPortieEditDialog (r.3217-3401) gebruikte closeDialog op 3 plekken
(r.3279 X-kruisje, r.3280 buiten-klik, r.3348 save) maar definieerde de functie
nergens. showBulkPortieEdit (r.3462-3465) had wél een closeDialog definitie.

Fix: closeDialog definitie toegevoegd met closing-animatie + delayed overlay removal.
E2e test toegevoegd voor single-ingredient portie wijzigen + opslaan scenario.

Kanban: t_044470e2
2026-07-24 09:27:54 +02:00
cas
1f3759786b fix: saveDagboek → saveToStorage (typo) — move/delete werken nu echt
Root cause: saveDagboek() was undefined → JS crashte in confirm/verplaats callbacks → overlays bleven hangen + opslag ging niet door
2026-07-24 03:15:05 +02:00
cas
a08baabe7c fix: event-delegatie naar init() verplaatst (1x registreren, niet per render) — move/delete werken nu
Root cause: listEl.addEventListener werd elke renderDagboek call opnieuw toegevoegd → 4+ handlers per klik. Fix: delegatie in init() met _delegationSetup flag, slechts 1 registratie.
2026-07-24 03:02:17 +02:00
cas
4925169ac9 fix: event-delegatie voor meal-group acties (move/delete/toggle werken nu) + dialog-knoppen gebruiken bestaande Karby-classes (btn-cancel, btn-save, btn-danger-outline) + e2e test voor confirm modal 2026-07-24 02:42:11 +02:00
cas
423977e397 feat: design-conforme bevestigingsmodal + maaltijd verplaatsen/verwijderen uit dagboek
- showConfirmModal vervangt alle confirm() calls met Karby-design modal
- Opslagen maaltijden verwijderen via bevestigingsmodal
- Dagboek: hele maaltijd-groep verwijderen (niet alleen losse items)
- Dagboek: maaltijd verplaatsen naar ander eetmoment
- Delete-knop styling: rode rand + rode tekst
2026-07-24 02:30:24 +02:00
cas
e09cf22b77 feat: toast positioned dynamically at click Y-coordinate — slides out right from interaction point 2026-07-24 02:22:55 +02:00
cas
1bb0a94bdd fix: toast terug naar slideInRight/slideOutRight — rechtsonder gepositioneerd 2026-07-24 02:18:40 +02:00
cas
0713ec62cd feat: haptic feedback (navigator.vibrate) + toast fix + 7 nieuwe e2e tests
- Haptic feedback: 8ms vibrate op elke button press (Android Vibration API)
- Toast fix: slideUp/Down animatie ipv slideInRight (die de pagina verschoof)
- 7 nieuwe e2e tests: steppers, modal-close animatie, tab-switching, date-nav, stagger-indices, button-transitions
- Tests groen: 15/16 passed, 1 skipped
2026-07-24 02:13:35 +02:00
cas
9c3a07bbce feat: animatiesysteem voor alle interacties (knoppen, modals, tabs, toasts, lijsten)
- 9 @keyframes: fadeIn/Out, slideUp/Down, slideInRight/OutRight, scaleIn, pulse, shimmer
- Button press: scale(0.96) op :active met 0.12s transition
- Modals: slideUp open (0.3s cubic-bezier), slideDown close (0.25s)
- Toast: slideInRight open, slideOutRight dismiss na 2s
- Tabs: crossfade switching met .switching class
- List items: staggered fadeIn via --i CSS variable (50ms per item)
- Stepper: pulse animatie op +/− tap
- Chips/pills: scale feedback op :active
- Diary entries: fadeIn + slideUp op nieuwe entries
2026-07-24 01:57:06 +02:00
cas
c2b9074ef9 feat: initiële commit — Karby PWA koolhydratenteller met NEVO database, maaltijden, dagboek, e2e tests
- NEVO dataset (2328 voedingsmiddelen) met zoekfunctie
- Dagboek met eetmomenten, koolhydratenlimiet en progress bar
- Maaltijden opslaan + nesten in dagboek + eenmalig/permanent bewerken
- Portie-systeem met steppers per NEVO-categorie
- Vorteq amber/goud branding met Karby logo
- Voedingscentrum links per product
- 8 Playwright e2e tests (100% groen)
- PWA met offline support

Kanban board: koolhydraat-app
2026-07-24 01:44:19 +02:00