App: Einrueckung haelt auch bei Umbruch, Loeschen fragt mittig
Eingerueckt wurde mit fuehrenden Leerzeichen. Die verschieben aber nur die
ERSTE Zeile: Bricht ein langer Name um ("Schublade Links Unten"), faengt die
Fortsetzung wieder ganz links an und die Hierarchie ist weg.
In einem aufklappenden Menue laesst sich das nicht loesen - dort liefert man
nur Text ab, das System ignoriert jedes Layout (auch lineLimit). Die
Lagerort- und Kategorieauswahl erscheint deshalb jetzt als Liste
(.pickerStyle(.navigationLink)). Dort ist jede Zeile eine echte Ansicht, ein
Innenabstand rueckt den ganzen Block ein - auch die zweite Zeile. Das liest
sich bei vielen Lagerorten ohnehin besser als ein langes Aufklappmenue.
Zwei enge Zeilen bleiben Menues: Mindestbestand je Ort bei Artikel und
Gruppe, wo direkt daneben das Mengenfeld steht. Dort wuerde eine
Listenauswahl die Zeile sprengen; sie behalten die Leerzeichen-Einrueckung.
Der Loeschdialog war ein confirmationDialog und fuhr als Blase von unten
herein. Jetzt ein alert: steht mittig und will gelesen werden.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ea7a42ac22
commit
d7002e2252
@@ -349,8 +349,9 @@ struct ProductDetailView: View {
|
||||
Text("Änderungen an Name/Marke/Kategorie sind noch nicht gespeichert. "
|
||||
+ "Foto und Lagerort-Bedarf werden sofort gespeichert.")
|
||||
}
|
||||
.confirmationDialog("„\(current.name)“ löschen?", isPresented: $pendingDelete,
|
||||
titleVisibility: .visible) {
|
||||
// alert und nicht confirmationDialog: Letzteres faehrt als Blase von
|
||||
// unten herein. Ein Loeschen will mittig stehen und gelesen werden.
|
||||
.alert("„\(current.name)“ löschen?", isPresented: $pendingDelete) {
|
||||
Button("Löschen", role: .destructive) { Task { await loeschen() } }
|
||||
Button("Abbrechen", role: .cancel) {}
|
||||
} message: {
|
||||
@@ -725,8 +726,9 @@ struct LotEditView: View {
|
||||
Section("Lagerort") {
|
||||
Picker("Lagerort", selection: $locationId) {
|
||||
Text("– ohne –").tag(String?.none)
|
||||
ForEach(baum(locations)) { e in Text(e.label).tag(String?.some(e.item.id)) }
|
||||
ForEach(baum(locations)) { e in BaumZeile(zeile: e).tag(String?.some(e.item.id)) }
|
||||
}
|
||||
.pickerStyle(.navigationLink)
|
||||
// Ort per QR am Regal/Fach setzen, statt in der Liste zu suchen.
|
||||
Button { locScanShown = true } label: {
|
||||
Label("Lagerort scannen", systemImage: "qrcode.viewfinder")
|
||||
|
||||
Reference in New Issue
Block a user