import { CredentialApiResponse, isCreditCardCredential, isPasswordCredential, isSecretCredential, } from "@/api/types"; import { DeleteCredentialButton } from "./DeleteCredentialButton"; type Props = { credential: CredentialApiResponse; }; function CredentialItem({ credential }: Props) { const credentialData = credential.credential; const getTotpTypeDisplay = (totpType: string) => { switch (totpType) { case "authenticator": return "Authenticator App"; case "email": return "Email"; case "text": return "Text Message"; case "none": default: return ""; } }; let credentialDetails = null; if (isPasswordCredential(credentialData)) { credentialDetails = (

Username/Email

Password

{credentialData.totp_type !== "none" && (

2FA Type

)}

{credentialData.username}

{"********"}

{credentialData.totp_type !== "none" && (

{getTotpTypeDisplay(credentialData.totp_type)}

)}
); } else if (isCreditCardCredential(credentialData)) { credentialDetails = (

Card Number

Brand

{"************" + credentialData.last_four}

{credentialData.brand}

); } else if (isSecretCredential(credentialData)) { credentialDetails = (

Secret Value

{credentialData.secret_label ? (

Type

) : null}

{"************"}

{credentialData.secret_label ? (

{credentialData.secret_label}

) : null}
); } return (

{credential.name}

{credential.credential_id}

{credentialDetails}
); } export { CredentialItem };