mirror of
https://github.com/ivanvorobei/SwiftUI.git
synced 2026-03-27 03:41:21 +01:00
Add examples project
This commit is contained in:
52
Examples/Example To-Do App/SwiftUITodo/TaskItemView.swift
Executable file
52
Examples/Example To-Do App/SwiftUITodo/TaskItemView.swift
Executable file
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// TaskItemView.swift
|
||||
// SwiftUITodo
|
||||
//
|
||||
// Created by Suyeol Jeon on 03/06/2019.
|
||||
// Copyright © 2019 Suyeol Jeon. All rights reserved.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct TaskItemView: View {
|
||||
@EnvironmentObject var userData: UserData
|
||||
|
||||
let task: Task
|
||||
@Binding var isEditing: Bool
|
||||
|
||||
var body: some View {
|
||||
return HStack {
|
||||
if self.isEditing {
|
||||
Image(systemName: "minus.circle")
|
||||
.foregroundColor(.red)
|
||||
.tapAction(count: 1) {
|
||||
self.delete()
|
||||
}
|
||||
NavigationButton(destination: TaskEditView(task: task).environmentObject(self.userData)) {
|
||||
Text(task.title)
|
||||
}
|
||||
} else {
|
||||
Button(action: { self.toggleDone() }) {
|
||||
Text(self.task.title)
|
||||
}
|
||||
Spacer()
|
||||
if task.isDone {
|
||||
Image(systemName: "checkmark").foregroundColor(.green)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func toggleDone() {
|
||||
guard !self.isEditing else { return }
|
||||
guard let index = self.userData.tasks.firstIndex(where: { $0.id == self.task.id }) else { return }
|
||||
self.userData.tasks[index].isDone.toggle()
|
||||
}
|
||||
|
||||
private func delete() {
|
||||
self.userData.tasks.removeAll(where: { $0.id == self.task.id })
|
||||
if self.userData.tasks.isEmpty {
|
||||
self.isEditing = false
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user