Einkaufsliste — Direkter Kamera-Scan-Button in der Kopfzeile #161

Closed
opened 2026-09-04 19:04:32 +02:00 by lena · 2 comments
Collaborator

Story: Einkaufsliste — Direkter Kamera-Scan-Button in der Kopfzeile

As a Nutzer der Einkaufsliste,
I want to die Handy-Kamera zum Barcode-Scannen mit einem Klick direkt aus der Kopfzeile öffnen können,
so that ich beim Einkaufen nicht erst durch das "..."-Menü navigieren muss.

Kontext (verifiziert im Code):

  • Barcode-Scan ist aktuell nur über den Menüpunkt "Barcode scannen" (shopping.page.scanBarcode) im "..."-Menü erreichbar (ShoppingListPage.tsx, setzt showBarcodeScan), der ShoppingBarcodeScanDialog öffnet (Kamera-basiertes Scannen via useBarcodeScanner-Hook, mit Fallback auf manuelle Eingabe wenn die Kamera nicht verfügbar ist).

Acceptance criteria:

  • Ein neuer, direkt sichtbarer Icon-Button (z. B. Kamera-Symbol) in der Kopfzeile der Einkaufsliste öffnet denselben ShoppingBarcodeScanDialog wie der bestehende Menüpunkt.
  • Der bestehende Menüpunkt "Barcode scannen" im "..."-Menü bleibt zusätzlich erhalten — kein Ersetzen, zwei Wege zum selben Ziel.
  • Der neue Button hat ein aussagekräftiges, übersetztes aria-label (DE/EN).
  • Platzierung in der Kopfzeile berücksichtigt die parallele Story "Einkaufsliste — Kopfzeile entlasten" (beide verändern denselben Bereich, sollten beim Umsetzen kurz aufeinander abgestimmt werden).

Out of scope for this story:

  • Keine Änderung am Scan-Ablauf selbst (Kamera-Logik, Fallback, Barcode-Lookup) — nur ein zusätzlicher Einstiegspunkt zum bestehenden Dialog.
  • Die Vorratsschrank-Seite hat eine analoge Situation (Barcode-Scan nur im "..."-Menü), aber nicht Teil dieser Story.

Open questions:

  • Keine — klar umrissene, kleine Ergänzung.
## Story: Einkaufsliste — Direkter Kamera-Scan-Button in der Kopfzeile **As a** Nutzer der Einkaufsliste, **I want to** die Handy-Kamera zum Barcode-Scannen mit einem Klick direkt aus der Kopfzeile öffnen können, **so that** ich beim Einkaufen nicht erst durch das "..."-Menü navigieren muss. **Kontext (verifiziert im Code):** - Barcode-Scan ist aktuell nur über den Menüpunkt "Barcode scannen" (`shopping.page.scanBarcode`) im "..."-Menü erreichbar (`ShoppingListPage.tsx`, setzt `showBarcodeScan`), der `ShoppingBarcodeScanDialog` öffnet (Kamera-basiertes Scannen via `useBarcodeScanner`-Hook, mit Fallback auf manuelle Eingabe wenn die Kamera nicht verfügbar ist). **Acceptance criteria:** - [ ] Ein neuer, direkt sichtbarer Icon-Button (z. B. Kamera-Symbol) in der Kopfzeile der Einkaufsliste öffnet denselben `ShoppingBarcodeScanDialog` wie der bestehende Menüpunkt. - [ ] Der bestehende Menüpunkt "Barcode scannen" im "..."-Menü bleibt zusätzlich erhalten — kein Ersetzen, zwei Wege zum selben Ziel. - [ ] Der neue Button hat ein aussagekräftiges, übersetztes `aria-label` (DE/EN). - [ ] Platzierung in der Kopfzeile berücksichtigt die parallele Story "Einkaufsliste — Kopfzeile entlasten" (beide verändern denselben Bereich, sollten beim Umsetzen kurz aufeinander abgestimmt werden). **Out of scope for this story:** - Keine Änderung am Scan-Ablauf selbst (Kamera-Logik, Fallback, Barcode-Lookup) — nur ein zusätzlicher Einstiegspunkt zum bestehenden Dialog. - Die Vorratsschrank-Seite hat eine analoge Situation (Barcode-Scan nur im "..."-Menü), aber nicht Teil dieser Story. **Open questions:** - Keine — klar umrissene, kleine Ergänzung.
lena self-assigned this 2026-09-04 22:05:38 +02:00
Author
Collaborator

Claimed. Starting implementation.

No open questions on this one - adding a camera icon button to the Shopping list header (now decluttered by #160) that opens the same ShoppingBarcodeScanDialog as the existing "Barcode scannen" menu item, which stays in the menu unchanged (two entry points to the same dialog, per the AC).

Claimed. Starting implementation. No open questions on this one - adding a camera icon button to the Shopping list header (now decluttered by #160) that opens the same ShoppingBarcodeScanDialog as the existing "Barcode scannen" menu item, which stays in the menu unchanged (two entry points to the same dialog, per the AC).
Author
Collaborator

Done. Commit a15a0a4, memory notes a5b42b9.

Scope delivered:

  • New camera icon button next to the list title, opening the same ShoppingBarcodeScanDialog the existing "Barcode scannen" menu item already opens.
  • The menu item stays unchanged - two entry points to the same dialog, per the AC.
  • Reuses the existing shopping.page.scanBarcode translation for the button's aria-label/title (already correct and translated in both locales) rather than adding a new key.
  • Landed after #160 per that issue's own cross-reference, so the button sits in an already-decluttered header.

No open questions on this issue, so no PO decisions needed. Purely a frontend UI addition - no backend involvement, no migration, no dedicated security review pass (self-review only, proportionate to the actual risk surface).

Added one direct test for the new button (asserts it opens the same dialog) alongside the pre-existing menu-item test, so both entry points are independently covered.

Verification: tsc -b clean, npm run build clean, full vitest suite green (125 files / 1160 tests, +1 new). Note: a background test run started before a multi-day session gap came back reporting a ~45-hour "duration" and a few worker-timeout errors with zero actual test failures - read that as the process having been suspended mid-run rather than a real issue, and confirmed clean on a fresh re-run instead. Real CI was pending on the whole matrix throughout the cycle (known runner-congestion pattern) - not yet confirmed green on the actual pipeline as of this comment.

With #160/#161 both done, the only issues left open are #150 (could-tier, its own unresolved design question) and the two status/blocked ones (#155, #138) - below the ~3-issue backlog-check threshold, so the next cycle will draft a few new candidate stories before picking up more work.

Done. Commit a15a0a4, memory notes a5b42b9. Scope delivered: - New camera icon button next to the list title, opening the same `ShoppingBarcodeScanDialog` the existing "Barcode scannen" menu item already opens. - The menu item stays unchanged - two entry points to the same dialog, per the AC. - Reuses the existing `shopping.page.scanBarcode` translation for the button's aria-label/title (already correct and translated in both locales) rather than adding a new key. - Landed after #160 per that issue's own cross-reference, so the button sits in an already-decluttered header. No open questions on this issue, so no PO decisions needed. Purely a frontend UI addition - no backend involvement, no migration, no dedicated security review pass (self-review only, proportionate to the actual risk surface). Added one direct test for the new button (asserts it opens the same dialog) alongside the pre-existing menu-item test, so both entry points are independently covered. Verification: `tsc -b` clean, `npm run build` clean, full vitest suite green (125 files / 1160 tests, +1 new). Note: a background test run started before a multi-day session gap came back reporting a ~45-hour "duration" and a few worker-timeout errors with zero actual test failures - read that as the process having been suspended mid-run rather than a real issue, and confirmed clean on a fresh re-run instead. Real CI was `pending` on the whole matrix throughout the cycle (known runner-congestion pattern) - not yet confirmed green on the actual pipeline as of this comment. With #160/#161 both done, the only issues left open are #150 (could-tier, its own unresolved design question) and the two status/blocked ones (#155, #138) - below the ~3-issue backlog-check threshold, so the next cycle will draft a few new candidate stories before picking up more work.
lena closed this issue 2026-09-06 19:47:49 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/todo#161
No description provided.