feat: added change in user invitation mail for suborg and updated list operation for sub org

This commit is contained in:
=
2025-10-20 23:01:59 +05:30
parent eec2b30666
commit 0ecca6a312
10 changed files with 136 additions and 65 deletions
@@ -0,0 +1,50 @@
import { Heading, Section, Text } from "@react-email/components";
import React from "react";
import { BaseButton } from "./BaseButton";
import { BaseEmailWrapper, BaseEmailWrapperProps } from "./BaseEmailWrapper";
interface SubOrganizationInvitationTemplateProps extends Omit<BaseEmailWrapperProps, "preview" | "title"> {
callback_url: string;
subOrganizationName: string;
}
export const SubOrganizationInvitationTemplate = ({
callback_url,
subOrganizationName,
siteUrl
}: SubOrganizationInvitationTemplateProps) => {
return (
<BaseEmailWrapper
title="Sub-Organization Invitation"
preview="You've been invited to join a suborganization on Infisical."
siteUrl={siteUrl}
>
<Heading className="text-black text-[18px] leading-[28px] text-center font-normal p-0 mx-0">
You've been invited to join a suborganization on Infisical
</Heading>
<Section className="px-[24px] mb-[28px] mt-[36px] pt-[12px] pb-[8px] border text-center border-solid border-gray-200 rounded-md bg-gray-50">
<Text className="text-black text-[14px] leading-[24px]">
You've been invited to join the suborganization <strong>{subOrganizationName}</strong>.
</Text>
</Section>
<Section className="text-center">
<BaseButton href={callback_url}>Join Suborganization</BaseButton>
</Section>
<Section className="mt-[24px] bg-gray-50 pt-[2px] pb-[16px] border border-solid border-gray-200 px-[24px] rounded-md text-gray-800">
<Text className="mb-[0px]">
<strong>About Infisical:</strong> Infisical is an all-in-one platform to securely manage application secrets,
certificates, SSH keys, and configurations across your team and infrastructure.
</Text>
</Section>
</BaseEmailWrapper>
);
};
export default SubOrganizationInvitationTemplate;
SubOrganizationInvitationTemplate.PreviewProps = {
subOrganizationName: "Example Project",
siteUrl: "https://infisical.com",
callback_url: "https://app.infisical.com"
} as SubOrganizationInvitationTemplateProps;
@@ -32,3 +32,4 @@ export * from "./SecretSyncFailedTemplate";
export * from "./ServiceTokenExpiryNoticeTemplate";
export * from "./SignupEmailVerificationTemplate";
export * from "./UnlockAccountTemplate";
export * from "./SubOrganizationInvitationTemplate";
+4 -1
View File
@@ -40,7 +40,8 @@ import {
SecretSyncFailedTemplate,
ServiceTokenExpiryNoticeTemplate,
SignupEmailVerificationTemplate,
UnlockAccountTemplate
UnlockAccountTemplate,
SubOrganizationInvitationTemplate
} from "./emails";
export type TSmtpConfig = SMTPTransport.Options;
@@ -65,6 +66,7 @@ export enum SmtpTemplates {
// HistoricalSecretList = "historicalSecretLeakIncident", not used anymore?
NewDeviceJoin = "newDevice",
OrgInvite = "organizationInvitation",
SubOrgInvite = "subOrganizationInvitation",
OrgAssignment = "organizationAssignment",
OAuthPasswordReset = "oAuthPasswordReset",
ResetPassword = "passwordReset",
@@ -102,6 +104,7 @@ export enum SmtpHost {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const EmailTemplateMap: Record<SmtpTemplates, React.FC<any>> = {
[SmtpTemplates.OrgInvite]: OrganizationInvitationTemplate,
[SmtpTemplates.SubOrgInvite]: SubOrganizationInvitationTemplate,
[SmtpTemplates.OrgAssignment]: OrganizationAssignmentTemplate,
[SmtpTemplates.NewDeviceJoin]: NewDeviceLoginTemplate,
[SmtpTemplates.SignupEmailVerification]: SignupEmailVerificationTemplate,