Parcourir la 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 il y a 4 jours
Parent
commit
e194f8def3
1 fichiers modifiés avec 27 ajouts et 7 suppressions
  1. 27 7
      zoom_app/ViewController.swift

+ 27 - 7
zoom_app/ViewController.swift

@@ -2804,11 +2804,19 @@ class ViewController: NSViewController {
2804 2804
             meetingsPrevDayButton,
2805 2805
             meetingsTodayButton,
2806 2806
             meetingsNextDayButton,
2807
-            emptyMeetingLabel,
2808 2807
             meetingsScrollView,
2809 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 2820
         homeSettingsView?.isHidden = isSettings == false
2813 2821
 
2814 2822
         if isHome {
@@ -3009,12 +3017,18 @@ class ViewController: NSViewController {
3009 3017
     }
3010 3018
 
3011 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 3027
         card.wantsLayer = true
3014 3028
         card.layer?.backgroundColor = meetingCardBackground.cgColor
3015 3029
         card.layer?.cornerRadius = 13
3016 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 3032
         card.translatesAutoresizingMaskIntoConstraints = false
3019 3033
         card.heightAnchor.constraint(equalToConstant: 116).isActive = true
3020 3034
 
@@ -3132,19 +3146,25 @@ private final class FlippedView: NSView {
3132 3146
 
3133 3147
 private final class MeetingCardView: NSView {
3134 3148
     private let url: URL?
3149
+    private let hoverBackground: NSColor
3150
+    private let hoverBorder: NSColor
3135 3151
     private var tracking: NSTrackingArea?
3136 3152
     private var isHovering = false
3137 3153
     private var normalBackgroundColor: CGColor?
3138 3154
     private var normalBorderColor: CGColor?
3139 3155
     private var normalBorderWidth: CGFloat?
3140 3156
 
3141
-    init(url: URL?) {
3157
+    init(url: URL?, hoverBackground: NSColor, hoverBorder: NSColor) {
3142 3158
         self.url = url
3159
+        self.hoverBackground = hoverBackground
3160
+        self.hoverBorder = hoverBorder
3143 3161
         super.init(frame: .zero)
3144 3162
     }
3145 3163
 
3146 3164
     required init?(coder: NSCoder) {
3147 3165
         self.url = nil
3166
+        self.hoverBackground = NSColor.white.withAlphaComponent(0.075)
3167
+        self.hoverBorder = NSColor.white.withAlphaComponent(0.85)
3148 3168
         super.init(coder: coder)
3149 3169
     }
3150 3170
 
@@ -3190,8 +3210,8 @@ private final class MeetingCardView: NSView {
3190 3210
         if normalBorderColor == nil { normalBorderColor = layer.borderColor }
3191 3211
         if normalBorderWidth == nil { normalBorderWidth = layer.borderWidth }
3192 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 3215
             layer.borderWidth = max(1.5, layer.borderWidth)
3196 3216
         } else {
3197 3217
             layer.backgroundColor = normalBackgroundColor