/** * Key Card component for displaying SSH keys in grid/list view */ import { Copy,ExternalLink,Pencil,Trash2 } from 'lucide-react'; import React from 'react'; import { useI18n } from '../../application/i18n/I18nProvider'; import { cn } from '../../lib/utils'; import { SSHKey } from '../../types'; import { Button } from '../ui/button'; import { VaultEntityIcon, vaultCertificateIconClass, vaultKeyIconClass, } from '../vault/VaultEntityIcon'; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuTrigger, } from '../ui/context-menu'; import { getKeyIcon,getKeyTypeDisplay } from './utils'; interface KeyCardProps { keyItem: SSHKey; viewMode: 'grid' | 'list'; isSelected: boolean; isMac: boolean; reorderProps?: React.HTMLAttributes; onClick: () => void; onEdit: () => void; onExport: () => void; onCopyPublicKey: () => void; onDelete: () => void; } export const KeyCard: React.FC = ({ keyItem, viewMode, isSelected, isMac, reorderProps, onClick, onEdit, onExport, onCopyPublicKey, onDelete, }) => { const { t } = useI18n(); return (
{keyItem.label}
Type {getKeyTypeDisplay(keyItem, isMac)}
{t("action.copyPublicKey")} {t("action.keyExport")} {t("action.edit")} {t("action.delete")}
); };