diff options
| author | Christian Cleberg <[email protected]> | 2026-04-13 19:44:44 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-13 19:44:44 -0500 |
| commit | fe1ccc69661603d419a642a450e4ac9e1258adb0 (patch) | |
| tree | 386455b6b5468abdd9dfa46dd4802b10da8b77a2 /Hutch/Networking/ProjectService.swift | |
| parent | 6ec9754ce34f331641b000eddef3d44bca2631a5 (diff) | |
| download | hutch-3.1.3.tar.gz hutch-3.1.3.tar.bz2 hutch-3.1.3.zip | |
fix: centralize URLs, tighten models, and polish SwiftUI bindingsv3.1.3
- Add shared HutchDeepLinkURL constants for app, widgets, and tests.
- Bump marketing version to 3.1.2 and build to 70 (app + widget extension).
- Point Hutch stats default base URL at HutchStatsAPI; add SRHTWebURL status
incident feed and reuse it from SystemStatusService.
- Group Project into Metadata and Resources; split ContributionStatsResponse
into StatsWindow and StatsTotals with updated decoding and tests.
- Replace @Bindable usage with explicit Bindings in Profile, Projects list,
and repository ACL flows; simplify Home pinned-item helper; add no-op
bodies on cancel alert buttons where the compiler requires a statement.
- Move repository row build-status indicator next to the relative-updated
caption and reserve a fixed 8×8 slot so the row does not jump when status
loads.
- Use NSString.lastPathComponent for build artifact filenames; collapse
duplicate ACL error branches; minor HutchStats HTTP and XMLParserDelegate
cleanups.
- Point widgets at HutchDeepLinkURL helpers; align tests with the new
response and URL types.
Diffstat (limited to 'Hutch/Networking/ProjectService.swift')
| -rw-r--r-- | Hutch/Networking/ProjectService.swift | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/Hutch/Networking/ProjectService.swift b/Hutch/Networking/ProjectService.swift index 93ce71f..bd8ccdc 100644 --- a/Hutch/Networking/ProjectService.swift +++ b/Hutch/Networking/ProjectService.swift @@ -372,17 +372,21 @@ struct ProjectService: Sendable { if mailingListsCursor == nil, sourcesCursor == nil, trackersCursor == nil { return Project( - id: project.rid, - name: project.name, - description: project.description, - website: project.website, - visibility: project.visibility, - tags: project.tags, - updated: project.updated, - mailingLists: deduplicate(mailingLists), - sources: deduplicate(sources), - trackers: deduplicate(trackers), - isFullyLoaded: true + metadata: .init( + id: project.rid, + name: project.name, + description: project.description, + website: project.website, + visibility: project.visibility, + tags: project.tags, + updated: project.updated + ), + resources: .init( + mailingLists: deduplicate(mailingLists), + sources: deduplicate(sources), + trackers: deduplicate(trackers), + isFullyLoaded: true + ) ) } } @@ -390,17 +394,16 @@ struct ProjectService: Sendable { private static func makeSummaryProject(from summary: ProjectSummaryPayload) -> Project { Project( - id: summary.rid, - name: summary.name, - description: summary.description, - website: summary.website, - visibility: summary.visibility, - tags: summary.tags, - updated: summary.updated, - mailingLists: [], - sources: [], - trackers: [], - isFullyLoaded: false + metadata: .init( + id: summary.rid, + name: summary.name, + description: summary.description, + website: summary.website, + visibility: summary.visibility, + tags: summary.tags, + updated: summary.updated + ), + resources: .init(mailingLists: [], sources: [], trackers: [], isFullyLoaded: false) ) } |
