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({onSelectView, isTopbarOpen}: HostManagerProps): React.ReactElement { const {t} = useTranslation(); const [activeTab, setActiveTab] = useState("host_viewer"); const [editingHost, setEditingHost] = useState(null); const [editingCredential, setEditingCredential] = useState(null); const {state: sidebarState} = useSidebar(); const handleEditHost = (host: SSHHost) => { setEditingHost(host); setActiveTab("add_host"); }; const handleFormSubmit = (updatedHost?: SSHHost) => { setEditingHost(null); setActiveTab("host_viewer"); }; const handleEditCredential = (credential: any) => { setEditingCredential(credential); setActiveTab("add_credential"); }; const handleCredentialFormSubmit = () => { setEditingCredential(null); setActiveTab("credentials"); }; const handleTabChange = (value: string) => { setActiveTab(value); // Reset editing states when switching away from edit tabs 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 ? t('hosts.editHost') : t('hosts.addHost')}
{t('credentials.credentialsViewer')} {editingCredential ? t('credentials.editCredential') : t('credentials.addCredential')}
) }