2026-01-30 03:15:10 +01:00
|
|
|
import OpenClawChatUI
|
|
|
|
|
import OpenClawKit
|
2025-12-14 00:17:07 +00:00
|
|
|
import SwiftUI
|
|
|
|
|
|
|
|
|
|
struct ChatSheet: View {
|
|
|
|
|
@Environment(\.dismiss) private var dismiss
|
2026-01-30 03:15:10 +01:00
|
|
|
@State private var viewModel: OpenClawChatViewModel
|
2025-12-30 06:47:19 +01:00
|
|
|
private let userAccent: Color?
|
2026-02-08 18:08:13 +01:00
|
|
|
private let agentName: String?
|
2025-12-14 00:17:07 +00:00
|
|
|
|
2026-02-08 18:08:13 +01:00
|
|
|
init(gateway: GatewayNodeSession, sessionKey: String, agentName: String? = nil, userAccent: Color? = nil) {
|
2026-01-19 05:44:36 +00:00
|
|
|
let transport = IOSGatewayChatTransport(gateway: gateway)
|
2025-12-14 05:04:58 +00:00
|
|
|
self._viewModel = State(
|
2026-01-30 03:15:10 +01:00
|
|
|
initialValue: OpenClawChatViewModel(
|
2025-12-14 00:17:07 +00:00
|
|
|
sessionKey: sessionKey,
|
|
|
|
|
transport: transport))
|
2025-12-30 06:47:19 +01:00
|
|
|
self.userAccent = userAccent
|
2026-02-08 18:08:13 +01:00
|
|
|
self.agentName = agentName
|
2025-12-14 00:17:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var body: some View {
|
|
|
|
|
NavigationStack {
|
2026-01-30 03:15:10 +01:00
|
|
|
OpenClawChatView(
|
2026-01-01 23:45:56 +01:00
|
|
|
viewModel: self.viewModel,
|
|
|
|
|
showsSessionSwitcher: true,
|
|
|
|
|
userAccent: self.userAccent)
|
2026-02-08 18:08:13 +01:00
|
|
|
.navigationTitle(self.chatTitle)
|
2025-12-14 00:17:07 +00:00
|
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
|
|
|
.toolbar {
|
|
|
|
|
ToolbarItem(placement: .topBarTrailing) {
|
|
|
|
|
Button {
|
|
|
|
|
self.dismiss()
|
|
|
|
|
} label: {
|
|
|
|
|
Image(systemName: "xmark")
|
|
|
|
|
}
|
|
|
|
|
.accessibilityLabel("Close")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-02-08 18:08:13 +01:00
|
|
|
|
|
|
|
|
private var chatTitle: String {
|
|
|
|
|
let trimmed = (self.agentName ?? "").trimmingCharacters(in: .whitespacesAndNewlines)
|
|
|
|
|
if trimmed.isEmpty { return "Chat" }
|
|
|
|
|
return "Chat (\(trimmed))"
|
|
|
|
|
}
|
2025-12-14 00:17:07 +00:00
|
|
|
}
|