浏览代码

Unify sidebar selected state styling across all navigation items.

Give every active sidebar row the same card background and purple border as Open Reddit so selection is clearly visible.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 月之前
父节点
当前提交
829f78bcce

+ 3 - 9
Reddit App/Utilities/InteractiveHoverStyle.swift

@@ -198,8 +198,7 @@ private struct HoverCardModifier: ViewModifier {
 
 private struct SidebarRowHoverModifier: ViewModifier {
     let isSelected: Bool
-    let showsCardBackground: Bool
-    let selectedBorderColor: Color
+    var selectedBorderColor: Color = AppTheme.accentPurple.opacity(0.4)
     @State private var isHovered = false
 
     func body(content: Content) -> some View {
@@ -211,16 +210,13 @@ private struct SidebarRowHoverModifier: ViewModifier {
 
     @ViewBuilder
     private var sidebarRowBackground: some View {
-        if showsCardBackground && isSelected {
+        if isSelected {
             RoundedRectangle(cornerRadius: AppTheme.cornerRadiusSmall)
                 .fill(AppTheme.quickAccessBackground)
                 .overlay(
                     RoundedRectangle(cornerRadius: AppTheme.cornerRadiusSmall)
                         .stroke(selectedBorderColor, lineWidth: 1)
                 )
-        } else if isSelected {
-            RoundedRectangle(cornerRadius: AppTheme.cornerRadiusSmall)
-                .fill(AppTheme.selectedRowFill)
         } else if isHovered {
             RoundedRectangle(cornerRadius: AppTheme.cornerRadiusSmall)
                 .fill(AppTheme.hoverFill)
@@ -245,13 +241,11 @@ extension View {
 
     func sidebarRowHover(
         isSelected: Bool,
-        showsCardBackground: Bool = false,
-        selectedBorderColor: Color = .clear
+        selectedBorderColor: Color = AppTheme.accentPurple.opacity(0.4)
     ) -> some View {
         modifier(
             SidebarRowHoverModifier(
                 isSelected: isSelected,
-                showsCardBackground: showsCardBackground,
                 selectedBorderColor: selectedBorderColor
             )
         )

+ 2 - 10
Reddit App/Views/Components/SidebarNavItemView.swift

@@ -29,9 +29,7 @@ struct SidebarQuickAccessItemView: View {
                 title: "Open Reddit",
                 subtitle: "Browse Reddit in-app",
                 isSelected: isSelected,
-                showsCardBackground: true,
-                showsChevron: true,
-                selectedBorderColor: AppTheme.accentPurple.opacity(0.4)
+                showsChevron: true
             ) {
                 ModernRedditIconView()
             }
@@ -44,9 +42,7 @@ private struct SidebarItemRow<Icon: View>: View {
     let title: String
     let subtitle: String
     var isSelected: Bool = false
-    var showsCardBackground: Bool = false
     var showsChevron: Bool = false
-    var selectedBorderColor: Color = .clear
     @ViewBuilder let icon: () -> Icon
 
     var body: some View {
@@ -77,11 +73,7 @@ private struct SidebarItemRow<Icon: View>: View {
         .padding(.horizontal, AppTheme.sidebarRowPaddingH)
         .padding(.vertical, AppTheme.sidebarRowPaddingV)
         .contentShape(RoundedRectangle(cornerRadius: AppTheme.cornerRadiusSmall))
-        .sidebarRowHover(
-            isSelected: isSelected,
-            showsCardBackground: showsCardBackground,
-            selectedBorderColor: selectedBorderColor
-        )
+        .sidebarRowHover(isSelected: isSelected)
     }
 }