Bug — Einkaufsliste-Mengen-Dialog markiert bestehenden Text nicht beim Öffnen #176

Closed
opened 2026-09-07 10:06:27 +02:00 by lena · 2 comments
Collaborator

Story: Bug — Einkaufsliste-Mengen-Dialog markiert bestehenden Text nicht beim Öffnen

As a Nutzer, der die Menge eines bereits eingetragenen Produkts ändert,
I want to dass der bestehende Wert beim Öffnen des Dialogs komplett markiert ist,
so that ich sofort lostippen kann, ohne erst manuell zu markieren oder zu löschen.

Kontext (verifiziert im Code):

  • ShoppingProductQuantityDialog.tsx: Das <Input>-Feld für die Menge nutzt nur autoFocus (Zeile ~94), keine Selektion des vorbelegten Werts (setQuantity(product?.quantity ?? '') bei Zeile 32). Der Cursor landet dadurch hinter dem bestehenden Text, neue Eingaben hängen sich an statt ihn zu ersetzen.

Acceptance criteria:

  • Beim Öffnen des Dialogs mit einer bereits eingetragenen Menge ist der komplette Text im Eingabefeld markiert (z. B. per onFocus={e => e.target.select()} oder einem entsprechenden useEffect).
  • Direktes Tippen nach dem Öffnen ersetzt den markierten Text, statt ihn zu ergänzen.
  • Verhalten bei leerem Feld (kein bestehender Wert) unverändert.

Out of scope for this story:

  • Sonstige Validierung/Formatierung der Mengen-Eingabe.
## Story: Bug — Einkaufsliste-Mengen-Dialog markiert bestehenden Text nicht beim Öffnen **As a** Nutzer, der die Menge eines bereits eingetragenen Produkts ändert, **I want to** dass der bestehende Wert beim Öffnen des Dialogs komplett markiert ist, **so that** ich sofort lostippen kann, ohne erst manuell zu markieren oder zu löschen. **Kontext (verifiziert im Code):** - `ShoppingProductQuantityDialog.tsx`: Das `<Input>`-Feld für die Menge nutzt nur `autoFocus` (Zeile ~94), keine Selektion des vorbelegten Werts (`setQuantity(product?.quantity ?? '')` bei Zeile 32). Der Cursor landet dadurch hinter dem bestehenden Text, neue Eingaben hängen sich an statt ihn zu ersetzen. **Acceptance criteria:** - [ ] Beim Öffnen des Dialogs mit einer bereits eingetragenen Menge ist der komplette Text im Eingabefeld markiert (z. B. per `onFocus={e => e.target.select()}` oder einem entsprechenden `useEffect`). - [ ] Direktes Tippen nach dem Öffnen ersetzt den markierten Text, statt ihn zu ergänzen. - [ ] Verhalten bei leerem Feld (kein bestehender Wert) unverändert. **Out of scope for this story:** - Sonstige Validierung/Formatierung der Mengen-Eingabe.
lena self-assigned this 2026-09-07 12:11:52 +02:00
Author
Collaborator

Claiming this for the current go-loop cycle. Plan: select the existing value in ShoppingProductQuantityDialog.tsx quantity input on open (e.g. onFocus select, alongside the existing autoFocus), so typing immediately replaces it instead of appending. No backend changes needed.

Claiming this for the current go-loop cycle. Plan: select the existing value in ShoppingProductQuantityDialog.tsx quantity input on open (e.g. onFocus select, alongside the existing autoFocus), so typing immediately replaces it instead of appending. No backend changes needed.
Author
Collaborator

Done. Added onFocus={e => e.target.select()} to the quantity <Input> in ShoppingProductQuantityDialog.tsx, alongside the existing autoFocus. Opening the dialog for an already-entered product now selects the full existing value, so typing immediately replaces it instead of appending after the cursor. Empty-field behavior is unaffected (selecting an empty string is a no-op).

Tests: added a regression test asserting selectionStart/selectionEnd span the full pre-filled value on focus. Full frontend suite (1211 tests) green locally, npm run build clean. No backend changes.

Commit: 8211fcf3.

Done. Added `onFocus={e => e.target.select()}` to the quantity `<Input>` in `ShoppingProductQuantityDialog.tsx`, alongside the existing `autoFocus`. Opening the dialog for an already-entered product now selects the full existing value, so typing immediately replaces it instead of appending after the cursor. Empty-field behavior is unaffected (selecting an empty string is a no-op). Tests: added a regression test asserting `selectionStart`/`selectionEnd` span the full pre-filled value on focus. Full frontend suite (1211 tests) green locally, `npm run build` clean. No backend changes. Commit: 8211fcf3.
lena closed this issue 2026-09-07 12:16:42 +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#176
No description provided.