Commit 9869de71ef
Unsigned
Layout: unified · split
Hutch/Models/Project.swift +1
| @@ -65,6 +65,7 @@ struct Project: Identifiable, Hashable, Sendable { | |||
| 65 | let website: String? | 65 | let website: String? |
| 66 | let visibility: Visibility | 66 | let visibility: Visibility |
| 67 | let tags: [String] | 67 | let tags: [String] |
| 68 | let updated: Date | ||
| 68 | let mailingLists: [MailingList] | 69 | let mailingLists: [MailingList] |
| 69 | let sources: [SourceRepo] | 70 | let sources: [SourceRepo] |
| 70 | let trackers: [Tracker] | 71 | let trackers: [Tracker] |
Hutch/Networking/ProjectService.swift +4 −1
| @@ -20,6 +20,7 @@ private struct ProjectSummaryPayload: Decodable, Sendable { | |||
| 20 | let website: String? | 20 | let website: String? |
| 21 | let visibility: Visibility | 21 | let visibility: Visibility |
| 22 | let tags: [String] | 22 | let tags: [String] |
| 23 | let updated: Date | ||
| 23 | } | 24 | } |
| 24 | 25 | ||
| 25 | private struct ProjectDetailResponse: Decodable, Sendable { | 26 | private struct ProjectDetailResponse: Decodable, Sendable { |
| @@ -92,6 +93,7 @@ struct ProjectService: Sendable { | |||
| 92 | website | 93 | website |
| 93 | visibility | 94 | visibility |
| 94 | tags | 95 | tags |
| 96 | updated | ||
| 95 | } | 97 | } |
| 96 | cursor | 98 | cursor |
| 97 | } | 99 | } |
| @@ -162,7 +164,7 @@ struct ProjectService: Sendable { | |||
| 162 | for try await project in group { | 164 | for try await project in group { |
| 163 | projects.append(project) | 165 | projects.append(project) |
| 164 | } | 166 | } |
| 165 | return projects.sorted { $0.name.localizedCaseInsensitiveCompare($1.name) == .orderedAscending } | 167 | return projects.sorted { $0.updated > $1.updated } |
| 166 | } | 168 | } |
| 167 | } | 169 | } |
| 168 | 170 | ||
| @@ -267,6 +269,7 @@ struct ProjectService: Sendable { | |||
| 267 | website: project.website, | 269 | website: project.website, |
| 268 | visibility: project.visibility, | 270 | visibility: project.visibility, |
| 269 | tags: project.tags, | 271 | tags: project.tags, |
| 272 | updated: summary.updated, | ||
| 270 | mailingLists: deduplicate(mailingLists), | 273 | mailingLists: deduplicate(mailingLists), |
| 271 | sources: deduplicate(sources), | 274 | sources: deduplicate(sources), |
| 272 | trackers: deduplicate(trackers) | 275 | trackers: deduplicate(trackers) |