Files
zeekay 89004ff9a7 rebrand: Papermark → Hanzo Dataroom across user-facing surfaces
108 files: README, marketing copy, page titles, meta tags, footer
text, email templates, .env.example, UI strings. URLs swapped
from papermark.com/papermark.io to dataroom.hanzo.ai.

Internal identifiers left intact per repo policy: localStorage
keys (papermark.email/papermark.name/last_papermark_login —
changing them logs users out), type field names
(papermarkUserId), internal helper symbols (PAPERMARK_HEADERS,
PapermarkSparkle component, isPapermarkUrl helper),
internal-only filenames. LLM.md retains 'Upstream: Papermark'
attribution line. Per-locale .po translations regenerate from
source on the next lingui-extract CI run.

DB migrations untouched (append-only history; rewriting them
breaks installed schemas). LICENSE stays AGPL-3.0.
2026-06-07 12:23:40 -07:00

102 lines
3.4 KiB
TypeScript

import React from "react";
import {
Body,
Container,
Head,
Hr,
Html,
Preview,
Section,
Tailwind,
Text,
} from "@react-email/components";
export default function BlockedEmailAttempt({
blockedEmail,
linkName,
resourceName,
resourceType = "document",
timestamp,
locationString,
accessType,
}: {
blockedEmail: string;
linkName: string;
resourceName: string;
resourceType?: "document" | "dataroom";
timestamp?: string;
locationString?: string;
accessType?: "global" | "allow" | "deny";
}) {
const accessTypeTexts = {
global:
"This email is on your global block list and was denied access. No further action is required.",
allow:
"This email is not on your link's allow list and was denied access. No further action is required.",
deny: "This email is on your link's block list and was denied access. No further action is required.",
default: "This email was denied access. No further action is required.",
};
const accessTypeText = accessType
? accessTypeTexts[accessType]
: accessTypeTexts.default;
return (
<Html>
<Head />
<Preview>Blocked email attempted to access your {resourceType}</Preview>
<Tailwind>
<Body className="mx-auto my-auto bg-white font-sans">
<Container className="mx-auto my-10 w-[465px] p-5">
<Text className="mx-0 mb-8 mt-4 p-0 text-center text-2xl font-normal">
<span className="font-bold tracking-tighter">Hanzo Dataroom</span>
</Text>
<Text className="mx-0 my-7 p-0 text-center text-xl font-semibold text-black">
Blocked Email Attempted Access
</Text>
<Text className="text-sm leading-6 text-black">
A blocked email attempted to access your {resourceType}:
</Text>
<Text className="break-all text-sm leading-6 text-black">
<ul>
<li className="text-sm leading-6 text-black">
<span className="font-semibold">Email address:</span>{" "}
{blockedEmail}
</li>
<li className="text-sm leading-6 text-black">
<span className="font-semibold">Time:</span>{" "}
{timestamp || new Date().toLocaleString()}
</li>
<li className="text-sm leading-6 text-black">
<span className="font-semibold">
{resourceType === "dataroom" ? "Dataroom" : "Document"}{" "}
name:
</span>{" "}
{resourceName}
</li>
<li className="text-sm leading-6 text-black">
<span className="font-semibold">Link name:</span> {linkName}
</li>
</ul>
</Text>
<Text className="mt-4 text-sm leading-6 text-black">
{accessTypeText}
</Text>
<Hr />
<Section className="mt-8 text-gray-400">
<Text className="text-xs">
© {new Date().getFullYear()} Hanzo AI, Inc.
</Text>
<Text className="text-xs">
If you have any feedback or questions about this email, simply
reply to it. I&apos;d love to hear from you!
</Text>
</Section>
</Container>
</Body>
</Tailwind>
</Html>
);
}