import { useState } from "react"; import { VC } from "vc-schema-tools"; import { Code, FileDownload, KeyboardArrowDown, KeyboardArrowUp, OpenInNew } from "@rimble/icons"; import { Box, Button, Flex, Link, Text } from "rimble-ui"; import { CopyToClipboard, ExpiredPill, HoverPathStroke, HoverSvgFill, ModalWithX, QrCode, UnstyledButton, } from "../../elements"; import { H3 } from "../../layouts"; import { RENDER_CONTEXT } from "../../../context"; import { baseColors, fonts, colors } from "../../../themes"; import { useVcSchema } from "../../../services/useVcSchema"; import { CredentialShareButton } from "./CredentialShare"; import { SocialMediaVerify } from "./CredentialShare/SocialMediaVerify"; import { ShareViaQr } from "./CredentialShare/ShareViaQr"; export interface CredentialFooterProps { vc: VC; vcUrl?: string; expired: any; isOpen: boolean; renderContext?: RENDER_CONTEXT; setIsOpen(isOpen: boolean): void; } export const CredentialFooter: React.FunctionComponent = (props) => { return ( {props.renderContext !== RENDER_CONTEXT.VC_EMBED && ( <> {props.vc.proof?.jwt && } )} {props.vcUrl && props.vc.proof?.jwt && ( <> {props.renderContext !== RENDER_CONTEXT.VC_EMBED && } )} {props.expired && } {props.renderContext !== RENDER_CONTEXT.VC_EMBED ? ( props.setIsOpen(!props.isOpen)} style={{ cursor: "pointer" }} > {props.isOpen ? ( <> Collapse ) : ( <> Expand )} ) : ( <> {props.vcUrl && ( Verify on Serto Search )} )} ); }; export interface CredentialEmbedProps { jwt: string; } export const CredentialEmbed: React.FunctionComponent = (props) => { const [isEmbedModalOpen, setIsEmbedModalOpen] = useState(false); const embedHtml = ``; return ( <> setIsEmbedModalOpen(true)} mr={2}> setIsEmbedModalOpen(false)}>

Embed Credential

{embedHtml}
); }; export interface QRCodeExpandProps { vcUrl: string; } export const QRCodeExpand: React.FunctionComponent = (props) => { const [isQrModalOpen, setIsQrModalOpen] = useState(false); return ( <> setIsQrModalOpen(true)} mr={2}> setIsQrModalOpen(false)}> Scan to Verify on Serto Search ); }; export interface DownloadCredentialJsonProps { vc: VC; } export const CredentialJsonDownload: React.FunctionComponent = (props) => { const { vcSchema } = useVcSchema(props.vc); const fileName = vcSchema?.slug ? vcSchema.slug + ".json" : "credential.json"; const credential = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(props.vc)); return ( ); }; export const CredentialTR: React.FunctionComponent = (props) => { return ( {props.children} ); }; export const CredentialTDRight: React.FunctionComponent = (props) => { return ( {props.children} ); }; export const CredentialTDLeft: React.FunctionComponent = (props) => { return ( {props.children} ); }; export const CredentialDetailsTDRight: React.FunctionComponent = (props) => { return ( {props.children} ); }; export interface CredentialDetailsTDLeftProps { color?: string; } export const CredentialDetailsTDLeft: React.FunctionComponent = (props) => { return ( {props.children} ); };