Explorar o código

refactor: switch all ForEach to use PersistentModel.id

Sam Jaffe hai 2 semanas
pai
achega
8f2745fac5

+ 0 - 3
Todos/Model/Project.swift

@@ -13,7 +13,6 @@ import SwiftUI
 final class Project: Codable, Ordered, Aggregate {
   typealias Element = Task
 
-  var uuid: UUID
   var sortOrder: Int = 0
   var name: String = "New Project"
   var category: String = ""
@@ -21,7 +20,6 @@ final class Project: Codable, Ordered, Aggregate {
   var tasks: [Task] = []
 
   init(sortOrder: Int = 0) {
-    self.uuid = UUID()
     self.sortOrder = sortOrder
   }
 
@@ -55,7 +53,6 @@ final class Project: Codable, Ordered, Aggregate {
 
   required init(from decoder: any Decoder) throws {
     let container = try decoder.container(keyedBy: CodingKeys.self)
-    uuid = UUID()
     name = try container.decode(String.self, forKey: .name)
     category = try container.decode(String.self, forKey: .category)
     tasks = try container.decode([Task].self, forKey: .tasks)

+ 1 - 1
Todos/View/ContentView.swift

@@ -19,7 +19,7 @@ struct ContentView: View {
   var body: some View {
     NavigationSplitView {
       List(selection: $selection) {
-        ForEach(items, id: \.uuid) { item in
+        ForEach(items, id: \.id) { item in
           NavigationLink(value: item) {
             Text(item.name)
           }.swipeActions(content: {

+ 2 - 2
Todos/View/ProjectPanelView.swift

@@ -42,7 +42,7 @@ struct ProjectPanelView: View {
       }.help("Default category for new Tasks")
     }
     List {
-      ForEach($item.tasks.sorted(by: Task.less)) { task in
+      ForEach($item.tasks.sorted(by: Task.less), id: \.id) { task in
         TaskView(task: task)
           .swipeActions {
             Button("Delete", systemImage: "trash", role: .destructive) {
@@ -50,7 +50,7 @@ struct ProjectPanelView: View {
             }
           }
 
-        ForEach(task.subtasks.sorted(by: SubTask.less)) { subtask in
+        ForEach(task.subtasks.sorted(by: SubTask.less), id: \.id) { subtask in
           SubTaskView(task: subtask)
             .swipeActions {
               Button("Delete", systemImage: "trash", role: .destructive) {