feat: move the terminal fully into the ssh-terminal plugin (B9)

This commit is contained in:
LukeGus committed 2026-09-23 21:41:22 -05:00
1 parent 535126fd1b
commit 79d77678c9
309 files changed
+41789 -14958

No files matched your search

@@ -1,13 +1,9 @@
import React from "react";
import { DraggableWindow } from "./DraggableWindow.tsx";
import {
Terminal,
type TerminalHandle,
type TerminalHostConfig,
} from "@/features/terminal/Terminal.tsx";
import type { TabHandle as TerminalHandle } from "@termix/plugin-sdk/frontend";
import { PluginComponent } from "@termix/plugin-sdk/ui";
import { useWindowManager } from "./WindowManager.tsx";
import { useTranslation } from "react-i18next";
import { CommandHistoryProvider } from "@/features/terminal/command-history/CommandHistoryContext.tsx";
import type { SSHHost } from "@/types/index.ts";
import { ExternalLink } from "lucide-react";
@@ -96,7 +92,7 @@ export function TerminalWindow({
: t("terminal.terminalTitle", { host: hostConfig.name });
return (
<CommandHistoryProvider>
<>
<DraggableWindow
title={terminalTitle}
initialX={initialX}
@@ -126,15 +122,16 @@ export function TerminalWindow({
) : null
}
>
<Terminal
ref={terminalRef}
hostConfig={hostConfig as TerminalHostConfig}
<PluginComponent
id="terminal.view"
handleRef={terminalRef}
hostConfig={hostConfig}
isVisible={!currentWindow.isMinimized}
initialPath={initialPath}
executeCommand={executeCommand}
onClose={handleClose}
/>
</DraggableWindow>
</CommandHistoryProvider>
</>
);
}
+10 -7
View File
@@ -1,10 +1,11 @@
import type { ComponentType } from "react";
import { FolderSearch, ArrowLeftRight } from "lucide-react";
import type {
PluginHostRecord,
StandaloneViewProps,
TabProps,
TermixApp,
import {
invokeAction,
type PluginHostRecord,
type StandaloneViewProps,
type TabProps,
type TermixApp,
} from "@termix/plugin-sdk/frontend";
import { GRID_SIZE } from "@/types/homepage-types";
import { FileManager } from "./FileManager.tsx";
@@ -15,7 +16,7 @@ import { FileManagerWidget } from "./homepage/FileManagerWidget.tsx";
import { FileManagerWidgetEditForm } from "./homepage/FileManagerWidgetEditForm.tsx";
import { startTransferMonitor } from "./TransferMonitor.tsx";
function FilesTab({ tab, host, sshHost, isVisible, shell }: TabProps) {
function FilesTab({ tab, host, sshHost, isVisible }: TabProps) {
const data = tab.data as
{ initialFilePath?: string; initialPath?: string } | undefined;
return (
@@ -25,7 +26,9 @@ function FilesTab({ tab, host, sshHost, isVisible, shell }: TabProps) {
initialPath={data?.initialPath}
isVisible={isVisible}
onOpenTerminalTab={
host ? (path) => shell.openTerminalTab(host, path) : undefined
host
? (path) => void invokeAction("terminal.open", host, { path })
: undefined
}
/>
);