|
@@ -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
|