KivoSign

React

Incorpore a assinatura da KivoSign no seu sistema React usando o SDK.

Instalação

npm install @documenso/embed-react

Modelo direto

import { EmbedDirectTemplate } from '@documenso/embed-react';

const SigningPage = () => {
  return (
    <EmbedDirectTemplate
      token="token-do-seu-modelo"
      host="https://app.kivosign.com.br"
      name="João Silva"
      email="joao@exemplo.com"
      lockEmail={true}
      externalId="pedido-12345"
      onDocumentReady={() => console.log('Pronto')}
      onDocumentCompleted={(data) => {
        console.log('Assinado:', data.documentId);
      }}
      onDocumentError={() => console.error('Erro')}
    />
  );
};

Token de assinatura

import { EmbedSignDocument } from '@documenso/embed-react';

const SigningPage = ({ token }: { token: string }) => {
  return (
    <EmbedSignDocument
      token={token}
      host="https://app.kivosign.com.br"
      onDocumentCompleted={(data) => {
        console.log('Assinado:', data.documentId);
      }}
    />
  );
};

Lembrando a assinatura do signatário

Passe um clientUserId opaco para pré-preencher e guardar a assinatura do signatário entre as incorporações. Nunca use e-mail ou outro dado pessoal aqui, pois ele aparece nos logs de requisição. Veja Assinaturas salvas.

<EmbedSignDocument host="https://app.kivosign.com.br" token={token} clientUserId={user.id} />

Estilo personalizado

import { EmbedDirectTemplate } from '@documenso/embed-react';

const StyledEmbed = () => {
  return (
    <EmbedDirectTemplate
      token="seu-token"
      host="https://app.kivosign.com.br"
      css={`
        .documenso-embed {
          border-radius: 8px;
          box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }
      `}
      cssVars={{
        primary: '#0000FF',
        background: '#F5F5F5',
        radius: '8px',
      }}
      darkModeDisabled={true}
    />
  );
};

Veja Variáveis CSS para todas as variáveis disponíveis.


Exemplo completo

import { useState } from 'react';

import { EmbedDirectTemplate } from '@documenso/embed-react';

type Status = 'loading' | 'ready' | 'completed' | 'error';

const DocumentSigning = ({ token }: { token: string }) => {
  const [status, setStatus] = useState<Status>('loading');

  if (status === 'completed') {
    return <p>Obrigado por assinar o documento.</p>;
  }

  if (status === 'error') {
    return <p>Ocorreu um erro. Tente novamente.</p>;
  }

  return (
    <div style={{ position: 'relative', height: '100vh' }}>
      {status === 'loading' && (
        <div style={{ position: 'absolute', inset: 0, display: 'grid', placeItems: 'center' }}>
          Carregando...
        </div>
      )}
      <EmbedDirectTemplate
        token={token}
        host="https://app.kivosign.com.br"
        onDocumentReady={() => setStatus('ready')}
        onDocumentCompleted={() => setStatus('completed')}
        onDocumentError={() => setStatus('error')}
      />
    </div>
  );
};

Veja também

Nesta página