Rezept speichern stuerzt bei nicht-numerischer Eingabe ab (int.parse) #4

Closed
opened 2026-09-09 20:12:42 +00:00 by Aceless · 1 comment
Owner
preparationTime: int.parse(_preparationTimeController.text),
cookingTime: int.parse(_cookingTimeController.text),
servings: int.parse(_servingsController.text),

Die Validierung dieser drei Felder prueft nur isNotEmpty (LabeledTextField mit isRequired: true). keyboardType: TextInputType.number ist keine Eingabebeschraenkung: Nutzer koennen "1,5", "ca. 15", ein Leerzeichen oder Text eintippen, externe Tastaturen senden ohnehin alles. int.parse wirft dann eine FormatException und der Speichern-Button reagiert scheinbar gar nicht.

Vorschlag:

  • Numerischen Validator ergaenzen (int.tryParse(v) == null -> Fehlermeldung)
  • FilteringTextInputFormatter.digitsOnly setzen
  • Beim Speichern int.tryParse(...) ?? 0 verwenden

Datei: app/lib/screens/recipe_edit_screen.dart:766-768

```dart preparationTime: int.parse(_preparationTimeController.text), cookingTime: int.parse(_cookingTimeController.text), servings: int.parse(_servingsController.text), ``` Die Validierung dieser drei Felder prueft nur `isNotEmpty` (`LabeledTextField` mit `isRequired: true`). `keyboardType: TextInputType.number` ist keine Eingabebeschraenkung: Nutzer koennen "1,5", "ca. 15", ein Leerzeichen oder Text eintippen, externe Tastaturen senden ohnehin alles. `int.parse` wirft dann eine `FormatException` und der Speichern-Button reagiert scheinbar gar nicht. **Vorschlag:** - Numerischen Validator ergaenzen (`int.tryParse(v) == null` -> Fehlermeldung) - `FilteringTextInputFormatter.digitsOnly` setzen - Beim Speichern `int.tryParse(...) ?? 0` verwenden Datei: `app/lib/screens/recipe_edit_screen.dart:766-768`
Author
Owner

Behoben auf Branch frontend-improvements.

digitsOnly-Formatter, numerischer Validator und int.tryParse beim Speichern.

Commits
  • 47edeeb Added Claude
  • 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung
  • 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests
  • bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten
  • d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben
  • d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren
  • 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen

flutter analyze: 0 Issues. flutter test: 22 Tests gruen.

Behoben auf Branch `frontend-improvements`. digitsOnly-Formatter, numerischer Validator und int.tryParse beim Speichern. <details><summary>Commits</summary> - 47edeeb Added Claude - 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung - 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests - bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten - d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben - d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren - 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen </details> `flutter analyze`: 0 Issues. `flutter test`: 22 Tests gruen.
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
Aceless/RecipePlanner#4
No description provided.