mirror of
https://github.com/hanzoai/sign.git
synced 2026-10-21 01:21:51 +00:00
Emails, the signing page's title, the sealed PDF's reason, the sign-in refusal and the dialogs still said Hanzo Sign. The catalogs change with the strings, message for message, so every translation keeps its id.
93 lines
3.3 KiB
TypeScript
93 lines
3.3 KiB
TypeScript
import { msg } from '@lingui/core/macro';
|
|
import { useLingui } from '@lingui/react';
|
|
import { Trans } from '@lingui/react/macro';
|
|
import { RecipientRole } from '@prisma/client';
|
|
|
|
import { RECIPIENT_ROLES_DESCRIPTION } from '@hanzo/esign-lib/constants/recipient-roles';
|
|
|
|
import { Body, Button, Container, Head, Html, Img, Preview, Section, Text } from '../components';
|
|
import { useBranding } from '../providers/branding';
|
|
import TemplateDocumentImage from '../template-components/template-document-image';
|
|
import { TemplateFooter } from '../template-components/template-footer';
|
|
|
|
export type DocumentCompletedEmailTemplateProps = {
|
|
recipientName?: string;
|
|
recipientRole?: RecipientRole;
|
|
documentLink?: string;
|
|
documentName?: string;
|
|
assetBaseUrl?: string;
|
|
};
|
|
|
|
export const DocumentCreatedFromDirectTemplateEmailTemplate = ({
|
|
recipientName = 'John Doe',
|
|
recipientRole = RecipientRole.SIGNER,
|
|
documentLink = 'http://localhost:3000',
|
|
documentName = 'Open Source Pledge.pdf',
|
|
assetBaseUrl = 'http://localhost:3002',
|
|
}: DocumentCompletedEmailTemplateProps) => {
|
|
const { _ } = useLingui();
|
|
const branding = useBranding();
|
|
|
|
const action = _(RECIPIENT_ROLES_DESCRIPTION[recipientRole].actioned).toLowerCase();
|
|
|
|
const previewText = msg`Document created from direct template`;
|
|
|
|
const getAssetUrl = (path: string) => {
|
|
return new URL(path, assetBaseUrl).toString();
|
|
};
|
|
|
|
return (
|
|
<Html>
|
|
<Head />
|
|
<Preview>{_(previewText)}</Preview>
|
|
|
|
<Body className="mx-auto my-auto font-sans">
|
|
<Section className="bg-white">
|
|
<Container className="mx-auto mb-2 mt-8 max-w-xl rounded-lg border border-solid border-slate-200 p-2 backdrop-blur-sm">
|
|
<Section className="p-2">
|
|
{branding.brandingEnabled && branding.brandingLogo ? (
|
|
<Img src={branding.brandingLogo} alt="Branding Logo" className="mb-4 h-6" />
|
|
) : (
|
|
<Img
|
|
src={getAssetUrl('/static/logo.png')}
|
|
alt="Hanzo eSign Logo"
|
|
className="mb-4 h-6"
|
|
/>
|
|
)}
|
|
|
|
<TemplateDocumentImage className="mt-6" assetBaseUrl={assetBaseUrl} />
|
|
|
|
<Section>
|
|
<Text className="mb-0 text-center text-lg font-semibold text-primary">
|
|
<Trans>
|
|
{recipientName} {action} a document by using one of your direct links
|
|
</Trans>
|
|
</Text>
|
|
|
|
<div className="mx-auto my-2 w-fit rounded-lg bg-gray-50 px-4 py-2 text-sm text-slate-600">
|
|
{documentName}
|
|
</div>
|
|
|
|
<Section className="my-6 text-center">
|
|
<Button
|
|
className="inline-flex items-center justify-center rounded-lg bg-sign-500 px-6 py-3 text-center text-sm font-medium text-black no-underline"
|
|
href={documentLink}
|
|
>
|
|
<Trans>View document</Trans>
|
|
</Button>
|
|
</Section>
|
|
</Section>
|
|
</Section>
|
|
</Container>
|
|
|
|
<Container className="mx-auto max-w-xl">
|
|
<TemplateFooter />
|
|
</Container>
|
|
</Section>
|
|
</Body>
|
|
</Html>
|
|
);
|
|
};
|
|
|
|
export default DocumentCreatedFromDirectTemplateEmailTemplate;
|