import { faCheck, faCopy, faDownload } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import FileSaver from "file-saver"; import { IconButton, Tooltip } from "@app/components/v2"; import { useTimedReset } from "@app/hooks"; type Props = { serialNumber: string; signedKey: string; privateKey?: string; publicKey?: string; }; export const SshCertificateContent = ({ serialNumber, signedKey, privateKey, publicKey }: Props) => { const [copyTextSerialNumber, isCopyingSerialNumber, setCopyTextSerialNumber] = useTimedReset({ initialState: "Copy to clipboard" }); const [copyTextCertificate, isCopyingCertificate, setCopyTextCertificate] = useTimedReset( { initialState: "Copy to clipboard" } ); const [copyTextCertificateSk, isCopyingCertificateSk, setCopyTextCertificateSk] = useTimedReset({ initialState: "Copy to clipboard" }); const [copyTextCertificatePk, isCopyingCertificatePk, setCopyTextCertificatePk] = useTimedReset({ initialState: "Copy to clipboard" }); const downloadTxtFile = (filename: string, content: string) => { const blob = new Blob([content], { type: "text/plain;charset=utf-8" }); FileSaver.saveAs(blob, filename); }; return (

Serial Number

{serialNumber}

{ navigator.clipboard.writeText(serialNumber); setCopyTextSerialNumber("Copied"); }} >

SSH Certificate / Signed Key

{ navigator.clipboard.writeText(signedKey); setCopyTextCertificate("Copied"); }} > { downloadTxtFile("user_key-cert.pub", signedKey); }} >

{signedKey}

{privateKey && ( <>

Private Key

{ navigator.clipboard.writeText(privateKey); setCopyTextCertificateSk("Copied"); }} > { downloadTxtFile("user_key.pem", privateKey); }} >

{privateKey}

)} {publicKey && ( <>

Public Key

{ navigator.clipboard.writeText(publicKey); setCopyTextCertificatePk("Copied"); }} > { downloadTxtFile("user_key.pub", publicKey); }} >

{publicKey}

)}
); };