Apdate AppImage

This commit is contained in:
MacRimi
2025-12-06 22:40:24 +01:00
parent e8dae63e05
commit d76b7a99b8
2 changed files with 47 additions and 328 deletions

View File

@@ -26,6 +26,9 @@ import type { CheatSheetResult } from "@/lib/cheat-sheet-result" // Declare Chea
type TerminalPanelProps = {
websocketUrl?: string
onClose?: () => void
isScriptModal?: boolean
initMessage?: { script_path: string; params: Record<string, string> }
onWebInteraction?: (interaction: any) => void
}
interface TerminalInstance {
@@ -132,7 +135,13 @@ const proxmoxCommands = [
{ cmd: "clear", desc: "Clear terminal screen" },
]
export const TerminalPanel: React.FC<TerminalPanelProps> = ({ websocketUrl, onClose }) => {
export const TerminalPanel: React.FC<TerminalPanelProps> = ({
websocketUrl,
onClose,
isScriptModal,
initMessage,
onWebInteraction,
}) => {
const [terminals, setTerminals] = useState<TerminalInstance[]>([])
const [activeTerminalId, setActiveTerminalId] = useState<string>("")
const [layout, setLayout] = useState<"single" | "grid">("grid")
@@ -570,6 +579,16 @@ export const TerminalPanel: React.FC<TerminalPanelProps> = ({ websocketUrl, onCl
const activeTerminal = terminals.find((t) => t.id === activeTerminalId)
useEffect(() => {
if (initMessage && activeTerminal?.ws && activeTerminal.ws.readyState === WebSocket.OPEN) {
const message = JSON.stringify(initMessage)
activeTerminal.ws.send(message)
if (onWebInteraction) {
onWebInteraction({ type: "script_init", message })
}
}
}, [initMessage, activeTerminal])
return (
<div className="flex flex-col h-full bg-zinc-950 rounded-md overflow-hidden">
<div className="flex items-center justify-between px-4 py-2 bg-zinc-900 border-b border-zinc-800">