Files
scarf/scarf/scarf/Features/Chat/Views/TerminalRepresentable.swift
T
Alan Wizemann ce001fe202 Add left padding to terminal view in chat interface
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 22:28:46 -04:00

35 lines
1.5 KiB
Swift

import SwiftUI
import AppKit
import SwiftTerm
struct PersistentTerminalView: NSViewRepresentable {
let terminalView: LocalProcessTerminalView
func makeNSView(context: Context) -> NSView {
let container = NSView()
terminalView.translatesAutoresizingMaskIntoConstraints = false
container.addSubview(terminalView)
NSLayoutConstraint.activate([
terminalView.leadingAnchor.constraint(equalTo: container.leadingAnchor, constant: 4),
terminalView.trailingAnchor.constraint(equalTo: container.trailingAnchor),
terminalView.topAnchor.constraint(equalTo: container.topAnchor),
terminalView.bottomAnchor.constraint(equalTo: container.bottomAnchor),
])
return container
}
func updateNSView(_ nsView: NSView, context: Context) {
if terminalView.superview !== nsView {
nsView.subviews.forEach { $0.removeFromSuperview() }
terminalView.translatesAutoresizingMaskIntoConstraints = false
nsView.addSubview(terminalView)
NSLayoutConstraint.activate([
terminalView.leadingAnchor.constraint(equalTo: nsView.leadingAnchor, constant: 4),
terminalView.trailingAnchor.constraint(equalTo: nsView.trailingAnchor),
terminalView.topAnchor.constraint(equalTo: nsView.topAnchor),
terminalView.bottomAnchor.constraint(equalTo: nsView.bottomAnchor),
])
}
}
}