|
|
@@ -17,7 +17,6 @@ struct TaskView: View {
|
|
|
@State private var hideNotes: Bool = false
|
|
|
@State private var empty = Category()
|
|
|
|
|
|
- @Binding var isMoveMode: Bool
|
|
|
@FocusState private var isFocused: Bool
|
|
|
|
|
|
var body: some View {
|
|
|
@@ -45,17 +44,9 @@ struct TaskView: View {
|
|
|
|
|
|
TextField("Task Name", text: $task.name)
|
|
|
.focused($isFocused)
|
|
|
- if isMoveMode {
|
|
|
- Button {
|
|
|
- deleteItem(item: task)
|
|
|
- } label: {
|
|
|
- Image(systemName: "trash")
|
|
|
- }.help("Delete Task '\(task.name)'")
|
|
|
- } else {
|
|
|
- Button(action: addItem) {
|
|
|
- Image(systemName: "plus")
|
|
|
- .help("Add a Subtask")
|
|
|
- }
|
|
|
+ Button(action: addItem) {
|
|
|
+ Image(systemName: "plus")
|
|
|
+ .help("Add a Subtask")
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -87,19 +78,17 @@ struct TaskView: View {
|
|
|
}
|
|
|
|
|
|
VStack {
|
|
|
- ForEach($task.subtasks, id: \.self) { subtask in
|
|
|
- HStack {
|
|
|
- SubTaskView(task: subtask)
|
|
|
- .padding(.leading, 5)
|
|
|
- if isMoveMode {
|
|
|
- Button {
|
|
|
+ ForEach($task.subtasks) { subtask in
|
|
|
+ SubTaskView(task: subtask)
|
|
|
+ .padding(.leading, 5)
|
|
|
+ .contextMenu {
|
|
|
+ Button(action: {
|
|
|
deleteItem(item: subtask.wrappedValue, fromTask: task)
|
|
|
- } label: {
|
|
|
- Image(systemName: "trash")
|
|
|
- }.help("Delete Subtask '\(subtask.name.wrappedValue)'")
|
|
|
+ }) {
|
|
|
+ Label("Delete", systemImage: "trash")
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -112,15 +101,6 @@ struct TaskView: View {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private func deleteItem(item: Task) {
|
|
|
- withAnimation {
|
|
|
- if let fromProject = item.project {
|
|
|
- fromProject.tasks.removeAll(where: { $0.id == item.id })
|
|
|
- modelContext.delete(item)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private func deleteItem(item: SubTask, fromTask: Task) {
|
|
|
withAnimation {
|
|
|
fromTask.subtasks.removeAll(where: { $0.id == item.id })
|
|
|
@@ -130,8 +110,7 @@ struct TaskView: View {
|
|
|
}
|
|
|
|
|
|
#Preview {
|
|
|
- @Previewable @State var isMoveMode = false
|
|
|
@Previewable @State var task = Task(name: "New Task")
|
|
|
- TaskView(task: $task, isMoveMode: $isMoveMode)
|
|
|
+ TaskView(task: $task)
|
|
|
.frame(minHeight: 100) // Preview does not resize window properly
|
|
|
}
|