fix: tighten macOS menu device rows
This commit is contained in:
@@ -39,6 +39,7 @@
|
|||||||
- macOS menu: device list now uses `node.list` (devices only; no agent/tool presence entries).
|
- macOS menu: device list now uses `node.list` (devices only; no agent/tool presence entries).
|
||||||
- macOS menu: device list now shows connected nodes only.
|
- macOS menu: device list now shows connected nodes only.
|
||||||
- macOS menu: device rows now pack platform/version on the first line, and command lists wrap in submenus.
|
- macOS menu: device rows now pack platform/version on the first line, and command lists wrap in submenus.
|
||||||
|
- macOS menu: split device platform/version across first and second rows for better fit.
|
||||||
- iOS node: fix ReplayKit screen recording crash caused by queue isolation assertions during capture.
|
- iOS node: fix ReplayKit screen recording crash caused by queue isolation assertions during capture.
|
||||||
- iOS Talk Mode: avoid audio tap queue assertions when starting recognition.
|
- iOS Talk Mode: avoid audio tap queue assertions when starting recognition.
|
||||||
- iOS/Android nodes: bridge auto-connect refreshes stale tokens and settings now show richer bridge/device details.
|
- iOS/Android nodes: bridge auto-connect refreshes stale tokens and settings now show richer bridge/device details.
|
||||||
|
|||||||
@@ -40,14 +40,12 @@ struct NodeMenuEntryFormatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static func headlineRight(_ entry: NodeInfo) -> String? {
|
static func headlineRight(_ entry: NodeInfo) -> String? {
|
||||||
var parts: [String] = []
|
self.platformText(entry)
|
||||||
if let platform = self.platformText(entry) { parts.append(platform) }
|
}
|
||||||
if let version = entry.version?.nonEmpty {
|
|
||||||
let short = self.shortVersionLabel(version)
|
static func detailRightVersion(_ entry: NodeInfo) -> String? {
|
||||||
parts.append(short)
|
guard let version = entry.version?.nonEmpty else { return nil }
|
||||||
}
|
return self.shortVersionLabel(version)
|
||||||
if parts.isEmpty { return nil }
|
|
||||||
return parts.joined(separator: " · ")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static func platformText(_ entry: NodeInfo) -> String? {
|
static func platformText(_ entry: NodeInfo) -> String? {
|
||||||
@@ -188,12 +186,24 @@ struct NodeMenuRowView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text(NodeMenuEntryFormatter.detailLeft(self.entry))
|
HStack(alignment: .firstTextBaseline, spacing: 8) {
|
||||||
.font(.caption)
|
Text(NodeMenuEntryFormatter.detailLeft(self.entry))
|
||||||
.foregroundStyle(self.secondaryColor)
|
.font(.caption)
|
||||||
.lineLimit(1)
|
.foregroundStyle(self.secondaryColor)
|
||||||
.truncationMode(.middle)
|
.lineLimit(1)
|
||||||
.frame(maxWidth: .infinity, alignment: .leading)
|
.truncationMode(.middle)
|
||||||
|
|
||||||
|
Spacer(minLength: 0)
|
||||||
|
|
||||||
|
if let version = NodeMenuEntryFormatter.detailRightVersion(self.entry) {
|
||||||
|
Text(version)
|
||||||
|
.font(.caption.monospacedDigit())
|
||||||
|
.foregroundStyle(self.secondaryColor)
|
||||||
|
.lineLimit(1)
|
||||||
|
.truncationMode(.middle)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
}
|
}
|
||||||
.frame(maxWidth: .infinity, alignment: .leading)
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ let package = Package(
|
|||||||
.library(name: "ClawdisChatUI", targets: ["ClawdisChatUI"]),
|
.library(name: "ClawdisChatUI", targets: ["ClawdisChatUI"]),
|
||||||
],
|
],
|
||||||
dependencies: [
|
dependencies: [
|
||||||
.package(path: "../../../ElevenLabsKit"),
|
.package(path: "../../../../ElevenLabsKit"),
|
||||||
],
|
],
|
||||||
targets: [
|
targets: [
|
||||||
.target(
|
.target(
|
||||||
|
|||||||
Reference in New Issue
Block a user