Ort zuordnen: Karte zeigt, was man da in der Hand haelt

Bisher stand dort nur "Einzelstück R9D55SDC". Die UID sagt aber nichts darueber,
welches Stueck das ist - gerade bei Kleidung, wo das NFC-Tag eingenaeht und
unsichtbar ist. Unter dem Sucher lag dafuer die halbe Seite ungenutzt.

Die Karte zeigt jetzt Vorschaubild, Artikelname, Marke und die Notiz, darunter
als beschriftete Zeilen die Einzelstuecknummer und den aktuellen Lagerort. Der
Ort ist beim Zuordnen die nuetzlichste Angabe ueberhaupt: man sieht sofort, ob
das Stueck schon irgendwo liegt.

Der Block war mit 50 Zeilen zu gross fuer den ohnehin langen body und steht
jetzt als EinzelstueckKarte fuer sich.

ProductThumb bekommt dafuer einen Groessenparameter (Vorgabe 34 wie bisher, also
keine Aenderung an den Listen) und bei grossen Bildern einen passenderen
Eckenradius und ein groesseres Ersatzsymbol.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-12 14:05:47 +02:00
co-authored by Claude Opus 5
parent a220823882
commit ba84e4ea01
2 changed files with 70 additions and 14 deletions
+8 -4
View File
@@ -93,11 +93,14 @@ final class ProductImageCache {
/// Kästchen-Symbol wie bisher. Ergebnisse kommen aus dem gemeinsamen Cache.
struct ProductThumb: View {
let productId: Int
/// Kantenlaenge. Listen lassen sie weg; wo mehr Platz ist (Ort zuordnen),
/// hilft ein groesseres Bild beim Wiedererkennen.
var groesse: CGFloat = 34
@State private var image: UIImage?
var body: some View {
content
.frame(width: 34, height: 34)
.frame(width: groesse, height: groesse)
.task(id: productId) { await load() }
}
@@ -105,11 +108,12 @@ struct ProductThumb: View {
if let image {
Image(uiImage: image)
.resizable().scaledToFill()
.frame(width: 34, height: 34)
.clipShape(RoundedRectangle(cornerRadius: 6))
.frame(width: groesse, height: groesse)
.clipShape(RoundedRectangle(cornerRadius: groesse > 48 ? 10 : 6))
} else {
Image(systemName: "shippingbox")
.font(.body).foregroundStyle(.secondary)
.font(groesse > 48 ? .largeTitle : .body)
.foregroundStyle(.secondary)
}
}