import { AlertTriangle, Fingerprint } from 'lucide-react'; import React from 'react'; import { useI18n } from '../../application/i18n/I18nProvider'; import type { HostKeyInfo } from '../../domain/hostKey'; import { cn } from '../../lib/utils'; import { Button } from '../ui/button'; import { TerminalConnectionLogList } from './TerminalConnectionProgress'; export type { HostKeyInfo } from '../../domain/hostKey'; export interface TerminalHostKeyVerificationProps { hostKeyInfo: HostKeyInfo; showLogs: boolean; progressLogs: string[]; onClose: () => void; onContinue: () => void; onAddAndContinue: () => void; } export const TerminalHostKeyVerification: React.FC = ({ hostKeyInfo, showLogs, progressLogs, onClose, onContinue, onAddAndContinue, }) => { const { t } = useI18n(); const isChanged = hostKeyInfo.status === 'changed'; const Icon = isChanged ? AlertTriangle : Fingerprint; return (
{isChanged ? t('terminal.hostKey.changedTitle') : t('terminal.hostKey.unknownTitle')}

{isChanged ? t('terminal.hostKey.changedDescription', { host: hostKeyInfo.hostname }) : t('terminal.hostKey.unknownDescription', { host: hostKeyInfo.hostname })}

{t('terminal.hostKey.fingerprintLabel', { keyType: hostKeyInfo.keyType })}
{hostKeyInfo.fingerprint}
{isChanged && hostKeyInfo.knownFingerprint && (
{t('terminal.hostKey.savedFingerprintLabel')}
{hostKeyInfo.knownFingerprint}
)}

{isChanged ? t('terminal.hostKey.changedHint') : t('terminal.hostKey.unknownHint')}

{showLogs && ( )}
); }; export default TerminalHostKeyVerification;