fix: menu preview label colors

This commit is contained in:
Peter Steinberger
2026-01-18 19:03:21 +00:00
parent 4b73dc95c4
commit 145b2e5f52
2 changed files with 27 additions and 14 deletions

View File

@@ -86,11 +86,17 @@ struct SessionMenuPreviewView: View {
}
private var primaryColor: Color {
self.isHighlighted ? Color(nsColor: .selectedMenuItemTextColor) : .primary
if self.isHighlighted {
return Color(nsColor: .selectedMenuItemTextColor)
}
return Color(nsColor: .labelColor)
}
private var secondaryColor: Color {
self.isHighlighted ? Color(nsColor: .selectedMenuItemTextColor).opacity(0.85) : .secondary
if self.isHighlighted {
return Color(nsColor: .selectedMenuItemTextColor).opacity(0.85)
}
return Color(nsColor: .secondaryLabelColor)
}
var body: some View {
@@ -104,21 +110,19 @@ struct SessionMenuPreviewView: View {
switch self.status {
case .loading:
Text("Loading preview…")
.font(.caption)
.foregroundStyle(self.secondaryColor)
self.placeholder("Loading preview…")
case .empty:
Text("No recent messages")
.font(.caption)
.foregroundStyle(self.secondaryColor)
self.placeholder("No recent messages")
case let .error(message):
Text(message)
.font(.caption)
.foregroundStyle(self.secondaryColor)
self.placeholder(message)
case .ready:
VStack(alignment: .leading, spacing: 6) {
ForEach(self.items) { item in
self.previewRow(item)
if self.items.isEmpty {
self.placeholder("No recent messages")
} else {
VStack(alignment: .leading, spacing: 6) {
ForEach(self.items) { item in
self.previewRow(item)
}
}
}
}
@@ -158,6 +162,13 @@ struct SessionMenuPreviewView: View {
}
}
@ViewBuilder
private func placeholder(_ text: String) -> some View {
Text(text)
.font(.caption)
.foregroundStyle(self.primaryColor)
}
}
enum SessionMenuPreviewLoader {