diff --git a/AppImage/components/script-terminal-modal.tsx b/AppImage/components/script-terminal-modal.tsx index 854feef..e626759 100644 --- a/AppImage/components/script-terminal-modal.tsx +++ b/AppImage/components/script-terminal-modal.tsx @@ -22,27 +22,24 @@ interface ScriptTerminalModalProps { open: boolean onClose: () => void scriptPath: string - scriptName: string + scriptTitle: string params?: Record - title: string - description: string } export function ScriptTerminalModal({ open: isOpen, onClose, scriptPath, - scriptName, + scriptTitle, params = {}, - title, - description, }: ScriptTerminalModalProps) { const termRef = useRef(null) const wsRef = useRef(null) const fitAddonRef = useRef(null) const sessionIdRef = useRef(Math.random().toString(36).substring(2, 8)) - const [isConnected, setIsConnected] = useState(true) + const [output, setOutput] = useState("") + const [connectionStatus, setConnectionStatus] = useState<"connecting" | "online" | "offline">("connecting") const [isComplete, setIsComplete] = useState(false) const [exitCode, setExitCode] = useState(null) const [currentInteraction, setCurrentInteraction] = useState(null) @@ -161,7 +158,7 @@ export function ScriptTerminalModal({ wsRef.current = ws ws.onopen = () => { - setIsConnected(true) + setConnectionStatus("online") const initMessage = { script_path: scriptPath, @@ -232,12 +229,12 @@ export function ScriptTerminalModal({ } ws.onerror = (error) => { - setIsConnected(false) + setConnectionStatus("offline") term.writeln("\x1b[31mWebSocket error occurred\x1b[0m") } ws.onclose = (event) => { - setIsConnected(false) + setConnectionStatus("offline") term.writeln("\x1b[33mConnection closed\x1b[0m") if (!isComplete) { @@ -254,7 +251,13 @@ export function ScriptTerminalModal({ checkConnectionInterval.current = setInterval(() => { if (ws) { - setIsConnected(ws.readyState === WebSocket.OPEN) + if (ws.readyState === WebSocket.OPEN) { + setConnectionStatus("online") + } else if (ws.readyState === WebSocket.CONNECTING) { + setConnectionStatus("connecting") + } else { + setConnectionStatus("offline") + } } }, 500) @@ -333,7 +336,7 @@ export function ScriptTerminalModal({ setInteractionInput("") setCurrentInteraction(null) setIsWaitingNextInteraction(false) - setIsConnected(false) + setConnectionStatus("connecting") } }, [isOpen]) @@ -507,12 +510,11 @@ export function ScriptTerminalModal({ onInteractOutside={(e) => e.preventDefault()} onEscapeKeyDown={(e) => e.preventDefault()} > - {title} + {scriptTitle}
-

{title}

- {description &&

{description}

} +

{scriptTitle}

@@ -617,10 +619,28 @@ export function ScriptTerminalModal({
- {isConnected ? "Online" : "Offline"} + + {connectionStatus === "online" + ? "Online" + : connectionStatus === "connecting" + ? "Connecting..." + : "Offline"} +