Browse Source

Fix empty-meeting label overlay and light-mode card hover

Stop updateSelectedHomeSectionUI from forcing the empty state label
visible whenever Home is shown; visibility now follows whether the
meeting list has cards so it no longer appears over meeting rows.

Use darker black-tinted hover and border on meeting cards in light
mode; keep existing white-tinted hover in dark mode.

Made-with: Cursor
huzaifahayat12 4 days ago
parent
commit
e194f8def3
1 changed files with 27 additions and 7 deletions
  1. 27 7
      zoom_app/ViewController.swift

+ 27 - 7
zoom_app/ViewController.swift

@@ -2804,11 +2804,19 @@ class ViewController: NSViewController {
2804
             meetingsPrevDayButton,
2804
             meetingsPrevDayButton,
2805
             meetingsTodayButton,
2805
             meetingsTodayButton,
2806
             meetingsNextDayButton,
2806
             meetingsNextDayButton,
2807
-            emptyMeetingLabel,
2808
             meetingsScrollView,
2807
             meetingsScrollView,
2809
             refreshMeetingsButton
2808
             refreshMeetingsButton
2810
         ]
2809
         ]
2811
-        dashboardViews.forEach { $0?.isHidden = isHome == false || isSettings }
2810
+        let hideDashboard = isHome == false || isSettings
2811
+        dashboardViews.forEach { $0?.isHidden = hideDashboard }
2812
+        // Do not toggle emptyMeetingLabel with other dashboard views — that overrode applyFilteredMeetings()
2813
+        // and showed "No meetings…" on top of meeting cards when returning to Home.
2814
+        if hideDashboard {
2815
+            emptyMeetingLabel?.isHidden = true
2816
+        } else {
2817
+            let hasMeetingCards = (meetingsListStack?.arrangedSubviews.isEmpty == false)
2818
+            emptyMeetingLabel?.isHidden = hasMeetingCards
2819
+        }
2812
         homeSettingsView?.isHidden = isSettings == false
2820
         homeSettingsView?.isHidden = isSettings == false
2813
 
2821
 
2814
         if isHome {
2822
         if isHome {
@@ -3009,12 +3017,18 @@ class ViewController: NSViewController {
3009
     }
3017
     }
3010
 
3018
 
3011
     private func makeMeetingRowCard(_ meeting: ScheduledMeeting) -> NSView {
3019
     private func makeMeetingRowCard(_ meeting: ScheduledMeeting) -> NSView {
3012
-        let card = MeetingCardView(url: meeting.webURL)
3020
+        let hoverBackground = palette.isDarkMode
3021
+            ? NSColor.white.withAlphaComponent(0.075)
3022
+            : NSColor.black.withAlphaComponent(0.10)
3023
+        let hoverBorder = palette.isDarkMode
3024
+            ? NSColor.white.withAlphaComponent(0.85)
3025
+            : NSColor.black.withAlphaComponent(0.22)
3026
+        let card = MeetingCardView(url: meeting.webURL, hoverBackground: hoverBackground, hoverBorder: hoverBorder)
3013
         card.wantsLayer = true
3027
         card.wantsLayer = true
3014
         card.layer?.backgroundColor = meetingCardBackground.cgColor
3028
         card.layer?.backgroundColor = meetingCardBackground.cgColor
3015
         card.layer?.cornerRadius = 13
3029
         card.layer?.cornerRadius = 13
3016
         card.layer?.borderWidth = 1
3030
         card.layer?.borderWidth = 1
3017
-        card.layer?.borderColor = NSColor.white.withAlphaComponent(0.06).cgColor
3031
+        card.layer?.borderColor = (palette.isDarkMode ? NSColor.white.withAlphaComponent(0.06) : NSColor.black.withAlphaComponent(0.10)).cgColor
3018
         card.translatesAutoresizingMaskIntoConstraints = false
3032
         card.translatesAutoresizingMaskIntoConstraints = false
3019
         card.heightAnchor.constraint(equalToConstant: 116).isActive = true
3033
         card.heightAnchor.constraint(equalToConstant: 116).isActive = true
3020
 
3034
 
@@ -3132,19 +3146,25 @@ private final class FlippedView: NSView {
3132
 
3146
 
3133
 private final class MeetingCardView: NSView {
3147
 private final class MeetingCardView: NSView {
3134
     private let url: URL?
3148
     private let url: URL?
3149
+    private let hoverBackground: NSColor
3150
+    private let hoverBorder: NSColor
3135
     private var tracking: NSTrackingArea?
3151
     private var tracking: NSTrackingArea?
3136
     private var isHovering = false
3152
     private var isHovering = false
3137
     private var normalBackgroundColor: CGColor?
3153
     private var normalBackgroundColor: CGColor?
3138
     private var normalBorderColor: CGColor?
3154
     private var normalBorderColor: CGColor?
3139
     private var normalBorderWidth: CGFloat?
3155
     private var normalBorderWidth: CGFloat?
3140
 
3156
 
3141
-    init(url: URL?) {
3157
+    init(url: URL?, hoverBackground: NSColor, hoverBorder: NSColor) {
3142
         self.url = url
3158
         self.url = url
3159
+        self.hoverBackground = hoverBackground
3160
+        self.hoverBorder = hoverBorder
3143
         super.init(frame: .zero)
3161
         super.init(frame: .zero)
3144
     }
3162
     }
3145
 
3163
 
3146
     required init?(coder: NSCoder) {
3164
     required init?(coder: NSCoder) {
3147
         self.url = nil
3165
         self.url = nil
3166
+        self.hoverBackground = NSColor.white.withAlphaComponent(0.075)
3167
+        self.hoverBorder = NSColor.white.withAlphaComponent(0.85)
3148
         super.init(coder: coder)
3168
         super.init(coder: coder)
3149
     }
3169
     }
3150
 
3170
 
@@ -3190,8 +3210,8 @@ private final class MeetingCardView: NSView {
3190
         if normalBorderColor == nil { normalBorderColor = layer.borderColor }
3210
         if normalBorderColor == nil { normalBorderColor = layer.borderColor }
3191
         if normalBorderWidth == nil { normalBorderWidth = layer.borderWidth }
3211
         if normalBorderWidth == nil { normalBorderWidth = layer.borderWidth }
3192
         if isHovering {
3212
         if isHovering {
3193
-            layer.backgroundColor = NSColor.white.withAlphaComponent(0.075).cgColor
3194
-            layer.borderColor = NSColor.white.withAlphaComponent(0.85).cgColor
3213
+            layer.backgroundColor = hoverBackground.cgColor
3214
+            layer.borderColor = hoverBorder.cgColor
3195
             layer.borderWidth = max(1.5, layer.borderWidth)
3215
             layer.borderWidth = max(1.5, layer.borderWidth)
3196
         } else {
3216
         } else {
3197
             layer.backgroundColor = normalBackgroundColor
3217
             layer.backgroundColor = normalBackgroundColor