Files
MindDump/MindDump/Views/TodoEditorView.swift

53 lines
1.5 KiB
Swift

import SwiftUI
struct TodoEditorView: View {
@Environment(ListStore.self) private var store
@Environment(\.dismiss) private var dismiss
let listID: UUID
var item: TodoItem?
@State private var title: String = ""
@FocusState private var titleFocused: Bool
private var isEditing: Bool { item != nil }
var body: some View {
NavigationStack {
Form {
TextField("Titel", text: $title)
.focused($titleFocused)
}
.navigationTitle(isEditing ? "Bearbeiten" : "Neuer Eintrag")
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Abbrechen") { dismiss() }
}
ToolbarItem(placement: .confirmationAction) {
Button("Fertig") { save() }
.disabled(title.trimmingCharacters(in: .whitespaces).isEmpty)
}
}
.onAppear {
if let item {
title = item.title
}
titleFocused = true
}
}
}
private func save() {
let trimmed = title.trimmingCharacters(in: .whitespaces)
guard !trimmed.isEmpty else { return }
if let item {
store.updateItem(item.id, in: listID, title: trimmed)
} else {
store.addItem(to: listID, title: trimmed)
}
dismiss()
}
}