fix: menu preview label colors
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user