From df6b25e366123303da2664c46d4e1d077f36897e Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 22 Aug 2026 09:35:39 +0000 Subject: [PATCH] fix(ui): restore HSplitView sidebar material and detail search field MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit HSplitView no longer supplies NavigationSplitView's native sidebar chrome. Paint one continuous .sidebar material behind the full left column (toggle, list, footer) and hide the List scroll background so vibrancy shows through. Use suggestionFill plus a hairline separator on the 仓库 search field so it reads as a rounded well on the contentBackground detail pane. Co-authored-by: yangflow --- gitrelay/ContentView.swift | 2 ++ gitrelay/Views/Repositories/RepoPairTableView.swift | 9 ++++++++- gitrelay/Views/Sidebar/MainSidebarView.swift | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gitrelay/ContentView.swift b/gitrelay/ContentView.swift index eecc381..c99b37b 100644 --- a/gitrelay/ContentView.swift +++ b/gitrelay/ContentView.swift @@ -131,6 +131,8 @@ struct ContentView: View { private var sidebarColumn: some View { MainSidebarView(selection: $sidebarSelection) .gitRelaySidebarColumnWidth(ideal: appVM.windowLayout.sidebarWidth) + .frame(maxHeight: .infinity, alignment: .topLeading) + .gitRelayChrome(.sidebar) .background { GeometryReader { proxy in Color.clear diff --git a/gitrelay/Views/Repositories/RepoPairTableView.swift b/gitrelay/Views/Repositories/RepoPairTableView.swift index b0936e8..2ee2073 100644 --- a/gitrelay/Views/Repositories/RepoPairTableView.swift +++ b/gitrelay/Views/Repositories/RepoPairTableView.swift @@ -83,13 +83,20 @@ struct RepoPairTableView: View { } .padding(.horizontal, DesignTokens.Spacing.sm) .frame(width: 260, height: DesignTokens.Size.searchFieldMinHeight) - .background(DesignTokens.Surface.searchFieldFill) + .background(DesignTokens.Surface.suggestionFill) .clipShape( RoundedRectangle( cornerRadius: DesignTokens.CornerRadius.control, style: .continuous ) ) + .overlay { + RoundedRectangle( + cornerRadius: DesignTokens.CornerRadius.control, + style: .continuous + ) + .strokeBorder(DesignTokens.Surface.separator, lineWidth: 1) + } } private var addButton: some View { diff --git a/gitrelay/Views/Sidebar/MainSidebarView.swift b/gitrelay/Views/Sidebar/MainSidebarView.swift index d28ba84..61bdfb1 100644 --- a/gitrelay/Views/Sidebar/MainSidebarView.swift +++ b/gitrelay/Views/Sidebar/MainSidebarView.swift @@ -33,12 +33,15 @@ struct MainSidebarView: View { } } .listStyle(.sidebar) + .scrollContentBackground(.hidden) + .frame(maxWidth: .infinity, maxHeight: .infinity) SidebarFooterView( summary: appVM.sidebarFooterSummary, onTogglePause: { appVM.toggleScheduledSyncPause() } ) } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) } /// `List` selection is optional; the pane always has a destination, so a nil