mirror of
https://github.com/fosrl/pangolin.git
synced 2026-02-07 21:46:38 +00:00
add license email
This commit is contained in:
118
server/emails/templates/EnterpriseEditionKeyGenerated.tsx
Normal file
118
server/emails/templates/EnterpriseEditionKeyGenerated.tsx
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { Body, Head, Html, Preview, Tailwind } from "@react-email/components";
|
||||||
|
import { themeColors } from "./lib/theme";
|
||||||
|
import {
|
||||||
|
EmailContainer,
|
||||||
|
EmailFooter,
|
||||||
|
EmailGreeting,
|
||||||
|
EmailHeading,
|
||||||
|
EmailInfoSection,
|
||||||
|
EmailLetterHead,
|
||||||
|
EmailSection,
|
||||||
|
EmailSignature,
|
||||||
|
EmailText
|
||||||
|
} from "./components/Email";
|
||||||
|
import CopyCodeBox from "./components/CopyCodeBox";
|
||||||
|
import ButtonLink from "./components/ButtonLink";
|
||||||
|
|
||||||
|
type EnterpriseEditionKeyGeneratedProps = {
|
||||||
|
keyValue: string;
|
||||||
|
personalUseOnly: boolean;
|
||||||
|
users: number;
|
||||||
|
sites: number;
|
||||||
|
modifySubscriptionLink?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const EnterpriseEditionKeyGenerated = ({
|
||||||
|
keyValue,
|
||||||
|
personalUseOnly,
|
||||||
|
users,
|
||||||
|
sites,
|
||||||
|
modifySubscriptionLink
|
||||||
|
}: EnterpriseEditionKeyGeneratedProps) => {
|
||||||
|
const previewText = personalUseOnly
|
||||||
|
? "Your Enterprise Edition key for personal use is ready"
|
||||||
|
: "Thank you for your purchase — your Enterprise Edition key is ready";
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Html>
|
||||||
|
<Head />
|
||||||
|
<Preview>{previewText}</Preview>
|
||||||
|
<Tailwind config={themeColors}>
|
||||||
|
<Body className="font-sans bg-gray-50">
|
||||||
|
<EmailContainer>
|
||||||
|
<EmailLetterHead />
|
||||||
|
|
||||||
|
<EmailGreeting>Hi there,</EmailGreeting>
|
||||||
|
|
||||||
|
{personalUseOnly ? (
|
||||||
|
<EmailText>
|
||||||
|
Your Enterprise Edition license key has been
|
||||||
|
generated. Qualifying users can use the
|
||||||
|
Enterprise Edition for free for{" "}
|
||||||
|
<strong>personal use only</strong>.
|
||||||
|
</EmailText>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<EmailText>
|
||||||
|
Thank you for your purchase. Your Enterprise
|
||||||
|
Edition license key is ready. Below are the
|
||||||
|
terms of your license.
|
||||||
|
</EmailText>
|
||||||
|
<EmailInfoSection
|
||||||
|
title="License details"
|
||||||
|
items={[
|
||||||
|
{
|
||||||
|
label: "Licensed users",
|
||||||
|
value: users
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Licensed sites",
|
||||||
|
value: sites
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
{modifySubscriptionLink && (
|
||||||
|
<EmailSection>
|
||||||
|
<ButtonLink
|
||||||
|
href={modifySubscriptionLink}
|
||||||
|
>
|
||||||
|
Modify subscription
|
||||||
|
</ButtonLink>
|
||||||
|
</EmailSection>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<EmailSection>
|
||||||
|
<EmailText>Your license key:</EmailText>
|
||||||
|
<CopyCodeBox
|
||||||
|
text={keyValue}
|
||||||
|
hint="Copy this key and use it when activating Enterprise Edition on your Pangolin host."
|
||||||
|
/>
|
||||||
|
</EmailSection>
|
||||||
|
|
||||||
|
<EmailText>
|
||||||
|
If you need to purchase additional license keys or
|
||||||
|
modify your existing license, please reach out to
|
||||||
|
our support team at{" "}
|
||||||
|
<a
|
||||||
|
href="mailto:support@pangolin.net"
|
||||||
|
className="text-primary font-medium"
|
||||||
|
>
|
||||||
|
support@pangolin.net
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</EmailText>
|
||||||
|
|
||||||
|
<EmailFooter>
|
||||||
|
<EmailSignature />
|
||||||
|
</EmailFooter>
|
||||||
|
</EmailContainer>
|
||||||
|
</Body>
|
||||||
|
</Tailwind>
|
||||||
|
</Html>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default EnterpriseEditionKeyGenerated;
|
||||||
@@ -1,6 +1,14 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
export default function CopyCodeBox({ text }: { text: string }) {
|
const DEFAULT_HINT = "Copy and paste this code when prompted";
|
||||||
|
|
||||||
|
export default function CopyCodeBox({
|
||||||
|
text,
|
||||||
|
hint
|
||||||
|
}: {
|
||||||
|
text: string;
|
||||||
|
hint?: string;
|
||||||
|
}) {
|
||||||
return (
|
return (
|
||||||
<div className="inline-block">
|
<div className="inline-block">
|
||||||
<div className="bg-gray-50 border border-gray-200 rounded-lg px-6 py-4 mx-auto">
|
<div className="bg-gray-50 border border-gray-200 rounded-lg px-6 py-4 mx-auto">
|
||||||
@@ -8,9 +16,7 @@ export default function CopyCodeBox({ text }: { text: string }) {
|
|||||||
{text}
|
{text}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-xs text-gray-500 mt-2">
|
<p className="text-xs text-gray-500 mt-2">{hint ?? DEFAULT_HINT}</p>
|
||||||
Copy and paste this code when prompted
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user