Selaa lähdekoodia

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 3 kuukautta sitten
vanhempi
sitoutus
e194f8def3
1 muutettua tiedostoa jossa 27 lisäystä ja 7 poistoa
  1. 27 7
      zoom_app/ViewController.swift

+ 27 - 7
zoom_app/ViewController.swift

@@ -2804,11 +2804,19 @@ class ViewController: NSViewController {
             meetingsPrevDayButton,
             meetingsPrevDayButton,
             meetingsTodayButton,
             meetingsTodayButton,
             meetingsNextDayButton,
             meetingsNextDayButton,
-            emptyMeetingLabel,
             meetingsScrollView,
             meetingsScrollView,
             refreshMeetingsButton
             refreshMeetingsButton
         ]
         ]
-        dashboardViews.forEach { $0?.isHidden = isHome == false || isSettings }
+        let hideDashboard = isHome == false || isSettings
+        dashboardViews.forEach { $0?.isHidden = hideDashboard }
+        // Do not toggle emptyMeetingLabel with other dashboard views — that overrode applyFilteredMeetings()
+        // and showed "No meetings…" on top of meeting cards when returning to Home.
+        if hideDashboard {
+            emptyMeetingLabel?.isHidden = true
+        } else {
+            let hasMeetingCards = (meetingsListStack?.arrangedSubviews.isEmpty == false)
+            emptyMeetingLabel?.isHidden = hasMeetingCards
+        }
         homeSettingsView?.isHidden = isSettings == false
         homeSettingsView?.isHidden = isSettings == false
 
 
         if isHome {
         if isHome {
@@ -3009,12 +3017,18 @@ class ViewController: NSViewController {
     }
     }
 
 
     private func makeMeetingRowCard(_ meeting: ScheduledMeeting) -> NSView {
     private func makeMeetingRowCard(_ meeting: ScheduledMeeting) -> NSView {
-        let card = MeetingCardView(url: meeting.webURL)
+        let hoverBackground = palette.isDarkMode
+            ? NSColor.white.withAlphaComponent(0.075)
+            : NSColor.black.withAlphaComponent(0.10)
+        let hoverBorder = palette.isDarkMode
+            ? NSColor.white.withAlphaComponent(0.85)
+            : NSColor.black.withAlphaComponent(0.22)
+        let card = MeetingCardView(url: meeting.webURL, hoverBackground: hoverBackground, hoverBorder: hoverBorder)
         card.wantsLayer = true
         card.wantsLayer = true
         card.layer?.backgroundColor = meetingCardBackground.cgColor
         card.layer?.backgroundColor = meetingCardBackground.cgColor
         card.layer?.cornerRadius = 13
         card.layer?.cornerRadius = 13
         card.layer?.borderWidth = 1
         card.layer?.borderWidth = 1
-        card.layer?.borderColor = NSColor.white.withAlphaComponent(0.06).cgColor
+        card.layer?.borderColor = (palette.isDarkMode ? NSColor.white.withAlphaComponent(0.06) : NSColor.black.withAlphaComponent(0.10)).cgColor
         card.translatesAutoresizingMaskIntoConstraints = false
         card.translatesAutoresizingMaskIntoConstraints = false
         card.heightAnchor.constraint(equalToConstant: 116).isActive = true
         card.heightAnchor.constraint(equalToConstant: 116).isActive = true
 
 
@@ -3132,19 +3146,25 @@ private final class FlippedView: NSView {
 
 
 private final class MeetingCardView: NSView {
 private final class MeetingCardView: NSView {
     private let url: URL?
     private let url: URL?
+    private let hoverBackground: NSColor
+    private let hoverBorder: NSColor
     private var tracking: NSTrackingArea?
     private var tracking: NSTrackingArea?
     private var isHovering = false
     private var isHovering = false
     private var normalBackgroundColor: CGColor?
     private var normalBackgroundColor: CGColor?
     private var normalBorderColor: CGColor?
     private var normalBorderColor: CGColor?
     private var normalBorderWidth: CGFloat?
     private var normalBorderWidth: CGFloat?
 
 
-    init(url: URL?) {
+    init(url: URL?, hoverBackground: NSColor, hoverBorder: NSColor) {
         self.url = url
         self.url = url
+        self.hoverBackground = hoverBackground
+        self.hoverBorder = hoverBorder
         super.init(frame: .zero)
         super.init(frame: .zero)
     }
     }
 
 
     required init?(coder: NSCoder) {
     required init?(coder: NSCoder) {
         self.url = nil
         self.url = nil
+        self.hoverBackground = NSColor.white.withAlphaComponent(0.075)
+        self.hoverBorder = NSColor.white.withAlphaComponent(0.85)
         super.init(coder: coder)
         super.init(coder: coder)
     }
     }
 
 
@@ -3190,8 +3210,8 @@ private final class MeetingCardView: NSView {
         if normalBorderColor == nil { normalBorderColor = layer.borderColor }
         if normalBorderColor == nil { normalBorderColor = layer.borderColor }
         if normalBorderWidth == nil { normalBorderWidth = layer.borderWidth }
         if normalBorderWidth == nil { normalBorderWidth = layer.borderWidth }
         if isHovering {
         if isHovering {
-            layer.backgroundColor = NSColor.white.withAlphaComponent(0.075).cgColor
-            layer.borderColor = NSColor.white.withAlphaComponent(0.85).cgColor
+            layer.backgroundColor = hoverBackground.cgColor
+            layer.borderColor = hoverBorder.cgColor
             layer.borderWidth = max(1.5, layer.borderWidth)
             layer.borderWidth = max(1.5, layer.borderWidth)
         } else {
         } else {
             layer.backgroundColor = normalBackgroundColor
             layer.backgroundColor = normalBackgroundColor