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

@@ -10,6 +10,8 @@ Docs: https://docs.clawd.bot
### Fixes ### Fixes
- Configure: hide OpenRouter auto routing model from the model picker. (#1182) — thanks @zerone0x. - Configure: hide OpenRouter auto routing model from the model picker. (#1182) — thanks @zerone0x.
- macOS: load menu session previews asynchronously so items populate while the menu is open.
- macOS: use label colors for session preview text so previews render in menu subviews.
## 2026.1.18-4 ## 2026.1.18-4

View File

@@ -86,11 +86,17 @@ struct SessionMenuPreviewView: View {
} }
private var primaryColor: Color { 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 { 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 { var body: some View {
@@ -104,21 +110,19 @@ struct SessionMenuPreviewView: View {
switch self.status { switch self.status {
case .loading: case .loading:
Text("Loading preview…") self.placeholder("Loading preview…")
.font(.caption)
.foregroundStyle(self.secondaryColor)
case .empty: case .empty:
Text("No recent messages") self.placeholder("No recent messages")
.font(.caption)
.foregroundStyle(self.secondaryColor)
case let .error(message): case let .error(message):
Text(message) self.placeholder(message)
.font(.caption)
.foregroundStyle(self.secondaryColor)
case .ready: case .ready:
VStack(alignment: .leading, spacing: 6) { if self.items.isEmpty {
ForEach(self.items) { item in self.placeholder("No recent messages")
self.previewRow(item) } 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 { enum SessionMenuPreviewLoader {