Parcourir la source

refactor: change completed to a status enum

Sam Jaffe il y a 3 semaines
Parent
commit
e22c340c6d
2 fichiers modifiés avec 21 ajouts et 5 suppressions
  1. 13 2
      Todos/Model/Task.swift
  2. 8 3
      Todos/View/TaskView.swift

+ 13 - 2
Todos/Model/Task.swift

@@ -8,13 +8,24 @@
 import Foundation
 import SwiftData
 
+enum Status : String, CaseIterable, Identifiable, Codable {
+  case Default = ""
+  case Complete = "V"
+  case InProgress = "C"
+  case Hiatus = "H"
+  case Waiting = "R"
+  
+  var id: Self { self }
+  var description: String { self.rawValue }
+}
+
 @Model
 final class Task {
   var name: String
   var notes: String = ""
-  var isComplete: Bool = false
+  var status: Status = Status.Default
   
   init(name: String) {
-    self.name = name;
+    self.name = name
   }
 }

+ 8 - 3
Todos/View/TaskView.swift

@@ -12,12 +12,17 @@ struct TaskView: View {
   
   var body: some View {
     HStack {
-      Toggle("", isOn: $task.isComplete)
+      Picker(""  /* TODO: Add Icons */, selection: $task.status) {
+        ForEach(Status.allCases) { unit in
+          Text(String(describing: unit))
+        }
+      }.scaledToFit()
       TextField("Task Name", text: $task.name)
     }
     HStack {
-      Spacer(minLength: 30)
-      TextField("Notes", text: $task.notes).font(.footnote)
+      TextField("Notes", text: $task.notes)
+          .font(.footnote)
+          .padding(.leading, 30)
     }
   }
 }