diff --git a/ios/Sources/ItemListView.swift b/ios/Sources/ItemListView.swift index 47b01bd..e019eff 100644 --- a/ios/Sources/ItemListView.swift +++ b/ios/Sources/ItemListView.swift @@ -102,7 +102,8 @@ struct ItemListView: View { .toolbar { ToolbarItem(placement: .topBarTrailing) { filterMenu } } .overlay { if busy && items.isEmpty { ProgressView() } } .refreshable { await load() } - .task { await load() } + // Auch beim Zurückkommen aus dem Einzelstück neu laden (z.B. Lagerort geändert). + .onAppear { Task { await load() } } .alert("Fehler", isPresented: Binding(get: { error != nil }, set: { if !$0 { error = nil } })) { Button("OK", role: .cancel) {} } message: { Text(error ?? "") } diff --git a/ios/Sources/ListViews.swift b/ios/Sources/ListViews.swift index 29663d0..ff70aeb 100644 --- a/ios/Sources/ListViews.swift +++ b/ios/Sources/ListViews.swift @@ -348,10 +348,11 @@ struct ProductListView: View { } } } - .task { - categories = (try? await APIClient.shared.categories()) ?? [] - await load() - } + .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 + // Einzelstücke) sofort stimmt und nicht „0" hängen bleibt. + .onAppear { Task { await load() } } } private func pick(_ id: Int?) {