import React, { useState } from "react"; import { HostManagerViewer } from "@/ui/Desktop/Apps/Host Manager/HostManagerViewer.tsx"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "@/components/ui/tabs.tsx"; import { Separator } from "@/components/ui/separator.tsx"; import { HostManagerEditor } from "@/ui/Desktop/Apps/Host Manager/HostManagerEditor.tsx"; import { CredentialsManager } from "@/ui/Desktop/Apps/Credentials/CredentialsManager.tsx"; import { CredentialEditor } from "@/ui/Desktop/Apps/Credentials/CredentialEditor.tsx"; import { useSidebar } from "@/components/ui/sidebar.tsx"; import { useTranslation } from "react-i18next"; import type { SSHHost, HostManagerProps } from "../../../types/index"; export function HostManager({ isTopbarOpen, }: HostManagerProps): React.ReactElement { const { t } = useTranslation(); const [activeTab, setActiveTab] = useState("host_viewer"); const [editingHost, setEditingHost] = useState(null); const [editingCredential, setEditingCredential] = useState<{ id: number; name?: string; username: string; } | null>(null); const { state: sidebarState } = useSidebar(); const handleEditHost = (host: SSHHost) => { setEditingHost(host); setActiveTab("add_host"); }; const handleFormSubmit = () => { setEditingHost(null); setActiveTab("host_viewer"); }; const handleEditCredential = (credential: { id: number; name?: string; username: string; }) => { setEditingCredential(credential); setActiveTab("add_credential"); }; const handleCredentialFormSubmit = () => { setEditingCredential(null); setActiveTab("credentials"); }; const handleTabChange = (value: string) => { setActiveTab(value); if (value !== "add_host") { setEditingHost(null); } if (value !== "add_credential") { setEditingCredential(null); } }; const topMarginPx = isTopbarOpen ? 74 : 26; const leftMarginPx = sidebarState === "collapsed" ? 26 : 8; const bottomMarginPx = 8; return (
{t("hosts.hostViewer")} {editingHost ? editingHost.id ? t("hosts.editHost") : t("hosts.cloneHost") : t("hosts.addHost")}
{t("credentials.credentialsViewer")} {editingCredential ? t("credentials.editCredential") : t("credentials.addCredential")}
); }