App: Folgeblatt nach dem Anlegen ging beim ersten Mal sofort wieder zu

Zwei sheet-Modifikatoren hingen am selben View: einzelstueckeNachAnlegen und
mengeNachAnlegen, beide in ea7a42a nebeneinandergesetzt. Zwei Praesentationen
am selben View vertragen sich in SwiftUI nicht zuverlaessig - eine davon wird
verschluckt, und genau deshalb hielt das Blatt erst im zweiten Anlauf.

Jetzt ein einziger Modifikator, der innen verzweigt: Einzelstuecke oder Menge
je Lagerort, je nach Verwaltungsart. Statt zweier Zustaende nur noch einer.

In der laufenden App geprueft, beide Zweige einzeln: Gegenstand mit
Einzelstuecken angelegt -> "Einzelstuecke anlegen" bleibt beim ERSTEN Mal
offen; Gegenstand mit Menge je Lagerort angelegt -> "Menge hinzufuegen"
ebenso.

Dabei nebenbei bestaetigt: Ein Gegenstand ohne Kategorie bekommt vom Server
tracking="food" und damit zu Recht gar keinen Folgeschritt - die
Verwaltungsart allein macht noch keinen Gegenstand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-10-16 06:35:37 +02:00
co-authored by Claude Opus 5
parent 1e8c4b2797
commit 83f7134459
3 changed files with 25 additions and 28 deletions
+6 -6
View File
@@ -409,8 +409,8 @@ struct ProductListView: View {
@State private var showNew = false
// Der gerade angelegte Artikel, bis sich das Formular geschlossen hat.
@State private var angelegt: Product?
@State private var einzelstueckeFuer: Product?
@State private var mengeFuer: Product?
/// Der gerade angelegte Artikel, bis der Folgeschritt dafuer durch ist.
@State private var nachAnlegenFuer: Product?
enum SortMode: String, CaseIterable, Identifiable {
case nameAsc = "Name A–Z"
@@ -538,8 +538,9 @@ struct ProductListView: View {
}
}
.sheet(isPresented: $showNew, onDismiss: {
if fuehrtEinzelstuecke(angelegt) { einzelstueckeFuer = angelegt }
else if fuehrtMengeJeLagerort(angelegt) { mengeFuer = angelegt }
if fuehrtEinzelstuecke(angelegt) || fuehrtMengeJeLagerort(angelegt) {
nachAnlegenFuer = angelegt
}
angelegt = nil
}) {
NavigationStack {
@@ -559,8 +560,7 @@ struct ProductListView: View {
}
}
}
.einzelstueckeNachAnlegen($einzelstueckeFuer)
.mengeNachAnlegen($mengeFuer)
.nachAnlegen($nachAnlegenFuer)
.task { categories = (try? await APIClient.shared.categories()) ?? [] }
// Bei jedem Erscheinen neu laden – auch beim Zurückkommen aus der
// Detailansicht, damit ein dort geänderter Bestand (z.B. neu angelegte