Rezept speichern: Fehler gehen verloren, Screen schliesst trotzdem #5

Closed
opened 2026-09-09 20:12:42 +00:00 by Aceless · 1 comment
Owner
if (widget.recipe == null) {
  recipeNotifier.addRecipe(recipe);    // nicht awaited
} else {
  recipeNotifier.updateRecipe(recipe); // nicht awaited
}
Navigator.of(context).pop();

addRecipe und updateRecipe sind Futures und machen intern rethrow. Da nicht awaited und nicht abgefangen wird, landet ein Serverfehler als unbehandelte Async-Exception in der Zone. Der Screen schliesst sich sofort, der Nutzer glaubt gespeichert zu haben - das Rezept ist aber weg.

Vorschlag: _saveRecipe zu Future<void> machen, await setzen, im catch eine SnackBar zeigen und nur bei Erfolg poppen. Waehrend des Speicherns den Button deaktivieren.

Datei: app/lib/screens/recipe_edit_screen.dart:723-786

```dart if (widget.recipe == null) { recipeNotifier.addRecipe(recipe); // nicht awaited } else { recipeNotifier.updateRecipe(recipe); // nicht awaited } Navigator.of(context).pop(); ``` `addRecipe` und `updateRecipe` sind `Future`s und machen intern `rethrow`. Da nicht awaited und nicht abgefangen wird, landet ein Serverfehler als unbehandelte Async-Exception in der Zone. Der Screen schliesst sich sofort, der Nutzer glaubt gespeichert zu haben - das Rezept ist aber weg. **Vorschlag:** `_saveRecipe` zu `Future<void>` machen, `await` setzen, im `catch` eine SnackBar zeigen und nur bei Erfolg poppen. Waehrend des Speicherns den Button deaktivieren. Datei: `app/lib/screens/recipe_edit_screen.dart:723-786`
Author
Owner

Behoben auf Branch frontend-improvements.

_saveRecipe ist async und awaited add/updateRecipe, Fehler landen in einer SnackBar, gepoppt wird nur bei Erfolg.

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`. _saveRecipe ist async und awaited add/updateRecipe, Fehler landen in einer SnackBar, gepoppt wird nur bei Erfolg. <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#5
No description provided.