import { useTranslation } from "react-i18next"; import { ImageIcon } from "lucide-react"; import { Button } from "@/components/button"; import { Input } from "@/components/input"; import { SettingRow } from "@/components/section-card"; import type { TerminalImageStorageMode, TerminalImageStorageSettings, TerminalImageStorageTestResult, } from "@/api/settings-api"; import { AccordionSection } from "./AdminSettingsShared"; const MODE_LABEL_KEYS: Record = { auto: "admin.imageStorageModeAuto", local: "admin.imageStorageModeLocal", "remote-sftp": "admin.imageStorageModeRemoteSftp", }; const SELECTED_MODE_LABEL_KEYS: Record< TerminalImageStorageTestResult["selectedMode"], string > = { local: "admin.imageStorageModeLocal", "remote-sftp": "admin.imageStorageModeRemoteSftp", unavailable: "admin.imageStorageSelectedModeUnavailable", }; export function AdminImageStorageSection({ open, onToggle, settings, setSettings, localDir, setLocalDir, instanceId, setInstanceId, saving, testing, testResult, onSave, onTest, }: { open: boolean; onToggle: () => void; settings: TerminalImageStorageSettings | null; setSettings: (settings: TerminalImageStorageSettings) => void; localDir: string; setLocalDir: (value: string) => void; instanceId: string; setInstanceId: (value: string) => void; saving: boolean; testing: boolean; testResult: TerminalImageStorageTestResult | null; onSave: () => void; onTest: () => void; }) { const { t } = useTranslation(); return ( } open={open} onToggle={onToggle} > {settings === null ? (
{t("common.loading")}
) : (
{(Object.keys(MODE_LABEL_KEYS) as TerminalImageStorageMode[]).map( (mode) => ( ), )}
setInstanceId(event.target.value)} className="h-8 w-48 text-xs" /> {testResult && (
{testResult.connected ? t("admin.imageStorageTestConnected") : t("admin.imageStorageTestNotConnected")}
{t("admin.imageStorageTestSelectedMode", { mode: t(SELECTED_MODE_LABEL_KEYS[testResult.selectedMode]), })}
{testResult.localHostVisible !== null && (
{testResult.localHostVisible ? t("admin.imageStorageTestLocalVisible") : t("admin.imageStorageTestLocalNotVisible")}
)}
)}
)}
); }