import { useTranslation } from "react-i18next"; import { Button, Form, Input, message, Tooltip } from "antd"; import { CopyToClipboard } from "react-copy-to-clipboard"; import { Clipboard as ClipboardIcon } from "lucide-react"; import { type Certificate } from "@/domain/certificate"; import { saveFiles2Zip } from "@/lib/file"; type CertificateDetailProps = { data: Certificate; }; const CertificateDetail = ({ data }: CertificateDetailProps) => { const { t } = useTranslation(); const [messageApi, MessageContextHolder] = message.useMessage(); const handleDownloadClick = async () => { // TODO: 支持下载多种格式 const zipName = `${data.id}-${data.san}.zip`; const files = [ { name: `${data.san}.pem`, content: data.certificate ?? "", }, { name: `${data.san}.key`, content: data.privateKey ?? "", }, ]; await saveFiles2Zip(zipName, files); }; return (