All files / src/components/views/Credentials IssueCredentialButton.tsx

0% Statements 0/7
0% Branches 0/2
0% Functions 0/4
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34                                                                   
import * as React from "react";
import { Button } from "rimble-ui";
import { ModalWithX } from "../../elements/Modals";
import { IssueVcFlow } from "./IssueVc/IssueVcFlow";
import { Identifier } from "../../../types";
 
export interface IssueCredentialButtonProps {
  issuerIdentifiers: Identifier[];
  subjectIdentifier?: Identifier;
  onComplete?(): void;
}
 
export const IssueCredentialButton: React.FunctionComponent<IssueCredentialButtonProps> = (props) => {
  const [isIssueModalOpen, setIsIssueModalOpen] = React.useState(false);
 
  return (
    <>
      <Button.Outline size="small" onClick={() => setIsIssueModalOpen(true)}>
        Issue Credential
      </Button.Outline>
      <ModalWithX isOpen={isIssueModalOpen} close={() => setIsIssueModalOpen(false)} minWidth={9} maxWidth={11}>
        <IssueVcFlow
          subjectIdentifier={props.subjectIdentifier}
          identifiers={props.issuerIdentifiers}
          onComplete={() => {
            setIsIssueModalOpen(false);
            props.onComplete && props.onComplete();
          }}
        />
      </ModalWithX>
    </>
  );
};