summaryrefslogtreecommitdiff
path: root/Hutch/Views/Projects/ProjectsListView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
committerChristian Cleberg <[email protected]>2026-04-13 19:44:44 -0500
commitfe1ccc69661603d419a642a450e4ac9e1258adb0 (patch)
tree386455b6b5468abdd9dfa46dd4802b10da8b77a2 /Hutch/Views/Projects/ProjectsListView.swift
parent6ec9754ce34f331641b000eddef3d44bca2631a5 (diff)
downloadhutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.tar.gz
hutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.tar.bz2
hutch-fe1ccc69661603d419a642a450e4ac9e1258adb0.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/Views/Projects/ProjectsListView.swift')
-rw-r--r--Hutch/Views/Projects/ProjectsListView.swift14
1 files changed, 10 insertions, 4 deletions
diff --git a/Hutch/Views/Projects/ProjectsListView.swift b/Hutch/Views/Projects/ProjectsListView.swift
index 12a5149..f6d5766 100644
--- a/Hutch/Views/Projects/ProjectsListView.swift
+++ b/Hutch/Views/Projects/ProjectsListView.swift
@@ -67,8 +67,6 @@ struct ProjectsListView: View {
@ViewBuilder
private func content(_ viewModel: ProjectsListViewModel) -> some View {
- @Bindable var vm = viewModel
-
List {
ForEach(viewModel.filteredProjects) { project in
NavigationLink {
@@ -84,7 +82,10 @@ struct ProjectsListView: View {
.themedList()
.listStyle(.plain)
.searchable(
- text: $vm.searchText,
+ text: Binding(
+ get: { viewModel.searchText },
+ set: { viewModel.searchText = $0 }
+ ),
placement: .navigationBarDrawer(displayMode: .always),
prompt: "Search projects"
)
@@ -107,7 +108,12 @@ struct ProjectsListView: View {
)
}
}
- .srhtErrorBanner(error: $vm.error)
+ .srhtErrorBanner(
+ error: Binding(
+ get: { viewModel.error },
+ set: { viewModel.error = $0 }
+ )
+ )
.refreshable {
await viewModel.loadProjects()
}