mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 06:16:59 +08:00
refactor(server): mail service (#10934)
This commit is contained in:
@@ -63,121 +63,105 @@ function make<T extends React.ComponentType<any>>(
|
||||
};
|
||||
}
|
||||
|
||||
// ================ User ================
|
||||
export const renderSignInMail = make(SignIn, 'Sign in to AFFiNE');
|
||||
export const renderSignUpMail = make(
|
||||
SignUp,
|
||||
'Your AFFiNE account is waiting for you!'
|
||||
);
|
||||
export const renderSetPasswordMail = make(
|
||||
SetPassword,
|
||||
'Set your AFFiNE password'
|
||||
);
|
||||
export const renderChangePasswordMail = make(
|
||||
ChangePassword,
|
||||
'Modify your AFFiNE password'
|
||||
);
|
||||
export const renderVerifyEmailMail = make(
|
||||
VerifyEmail,
|
||||
'Verify your email address'
|
||||
);
|
||||
export const renderChangeEmailMail = make(
|
||||
ChangeEmail,
|
||||
'Change your email address'
|
||||
);
|
||||
export const renderVerifyChangeEmailMail = make(
|
||||
VerifyChangeEmail,
|
||||
'Verify your new email address'
|
||||
);
|
||||
export const renderChangeEmailNotificationMail = make(
|
||||
ChangeEmailNotification,
|
||||
'Account email address changed'
|
||||
);
|
||||
export const Renderers = {
|
||||
//#region User
|
||||
SignIn: make(SignIn, 'Sign in to AFFiNE'),
|
||||
SignUp: make(SignUp, 'Your AFFiNE account is waiting for you!'),
|
||||
SetPassword: make(SetPassword, 'Set your AFFiNE password'),
|
||||
ChangePassword: make(ChangePassword, 'Modify your AFFiNE password'),
|
||||
VerifyEmail: make(VerifyEmail, 'Verify your email address'),
|
||||
ChangeEmail: make(ChangeEmail, 'Change your email address'),
|
||||
VerifyChangeEmail: make(VerifyChangeEmail, 'Verify your new email address'),
|
||||
EmailChanged: make(ChangeEmailNotification, 'Account email address changed'),
|
||||
//#endregion
|
||||
|
||||
// ================ Workspace ================
|
||||
export const renderMemberInvitationMail = make(
|
||||
Invitation,
|
||||
props => `${props.user.email} invited you to join ${props.workspace.name}`
|
||||
);
|
||||
export const renderMemberAcceptedMail = make(
|
||||
InvitationAccepted,
|
||||
props => `${props.user.email} accepted your invitation`
|
||||
);
|
||||
export const renderMemberLeaveMail = make(
|
||||
MemberLeave,
|
||||
props => `${props.user.email} left ${props.workspace.name}`
|
||||
);
|
||||
export const renderLinkInvitationReviewRequestMail = make(
|
||||
LinkInvitationReviewRequest,
|
||||
props => `New request to join ${props.workspace.name}`
|
||||
);
|
||||
export const renderLinkInvitationApproveMail = make(
|
||||
LinkInvitationApproved,
|
||||
props => `Your request to join ${props.workspace.name} has been approved`
|
||||
);
|
||||
export const renderLinkInvitationDeclineMail = make(
|
||||
LinkInvitationReviewDeclined,
|
||||
props => `Your request to join ${props.workspace.name} was declined`
|
||||
);
|
||||
export const renderMemberRemovedMail = make(
|
||||
MemberRemoved,
|
||||
props => `You have been removed from ${props.workspace.name}`
|
||||
);
|
||||
export const renderOwnershipTransferredMail = make(
|
||||
OwnershipTransferred,
|
||||
props => `Your ownership of ${props.workspace.name} has been transferred`
|
||||
);
|
||||
export const renderOwnershipReceivedMail = make(
|
||||
OwnershipReceived,
|
||||
props => `You are now the owner of ${props.workspace.name}`
|
||||
);
|
||||
//#region Workspace
|
||||
MemberInvitation: make(
|
||||
Invitation,
|
||||
props => `${props.user.email} invited you to join ${props.workspace.name}`
|
||||
),
|
||||
MemberAccepted: make(
|
||||
InvitationAccepted,
|
||||
props => `${props.user.email} accepted your invitation`
|
||||
),
|
||||
MemberLeave: make(
|
||||
MemberLeave,
|
||||
props => `${props.user.email} left ${props.workspace.name}`
|
||||
),
|
||||
LinkInvitationReviewRequest: make(
|
||||
LinkInvitationReviewRequest,
|
||||
props => `New request to join ${props.workspace.name}`
|
||||
),
|
||||
LinkInvitationApprove: make(
|
||||
LinkInvitationApproved,
|
||||
props => `Your request to join ${props.workspace.name} has been approved`
|
||||
),
|
||||
LinkInvitationDecline: make(
|
||||
LinkInvitationReviewDeclined,
|
||||
props => `Your request to join ${props.workspace.name} was declined`
|
||||
),
|
||||
MemberRemoved: make(
|
||||
MemberRemoved,
|
||||
props => `You have been removed from ${props.workspace.name}`
|
||||
),
|
||||
OwnershipTransferred: make(
|
||||
OwnershipTransferred,
|
||||
props => `Your ownership of ${props.workspace.name} has been transferred`
|
||||
),
|
||||
OwnershipReceived: make(
|
||||
OwnershipReceived,
|
||||
props => `You are now the owner of ${props.workspace.name}`
|
||||
),
|
||||
//#endregion
|
||||
|
||||
// ================ Team ================
|
||||
export const renderTeamWorkspaceUpgradedMail = make(
|
||||
TeamWorkspaceUpgraded,
|
||||
props =>
|
||||
//#region Team
|
||||
TeamWorkspaceUpgraded: make(TeamWorkspaceUpgraded, props =>
|
||||
props.isOwner
|
||||
? 'Your workspace has been upgraded to team workspace! 🎉'
|
||||
: `${props.workspace.name} has been upgraded to team workspace! 🎉`
|
||||
);
|
||||
),
|
||||
TeamBecomeAdmin: make(
|
||||
TeamBecomeAdmin,
|
||||
props => `You are now an admin of ${props.workspace.name}`
|
||||
),
|
||||
TeamBecomeCollaborator: make(
|
||||
TeamBecomeCollaborator,
|
||||
props => `Your role has been changed in ${props.workspace.name}`
|
||||
),
|
||||
TeamDeleteIn24Hours: make(
|
||||
TeamDeleteIn24Hours,
|
||||
props =>
|
||||
`[Action Required] Final warning: Your workspace ${props.workspace.name} will be deleted in 24 hours`
|
||||
),
|
||||
TeamDeleteInOneMonth: make(
|
||||
TeamDeleteInOneMonth,
|
||||
props =>
|
||||
`[Action Required] Important: Your workspace ${props.workspace.name} will be deleted soon`
|
||||
),
|
||||
TeamWorkspaceDeleted: make(
|
||||
TeamWorkspaceDeleted,
|
||||
props => `Your workspace ${props.workspace.name} has been deleted`
|
||||
),
|
||||
TeamWorkspaceExpireSoon: make(
|
||||
TeamExpireSoon,
|
||||
props =>
|
||||
`[Action Required] Your ${props.workspace.name} team workspace will expire soon`
|
||||
),
|
||||
TeamWorkspaceExpired: make(
|
||||
TeamExpired,
|
||||
props => `Your ${props.workspace.name} team workspace has expired`
|
||||
),
|
||||
//#endregion
|
||||
|
||||
export const renderTeamBecomeAdminMail = make(
|
||||
TeamBecomeAdmin,
|
||||
props => `You are now an admin of ${props.workspace.name}`
|
||||
);
|
||||
//#region License
|
||||
TeamLicense: make(
|
||||
TeamLicense,
|
||||
'Your AFFiNE Self-Hosted Team Workspace license is ready'
|
||||
),
|
||||
//#endregion
|
||||
} as const;
|
||||
|
||||
export const renderTeamBecomeCollaboratorMail = make(
|
||||
TeamBecomeCollaborator,
|
||||
props => `Your role has been changed in ${props.workspace.name}`
|
||||
);
|
||||
export const renderTeamDeleteIn24HoursMail = make(
|
||||
TeamDeleteIn24Hours,
|
||||
props =>
|
||||
`[Action Required] Final warning: Your workspace ${props.workspace.name} will be deleted in 24 hours`
|
||||
);
|
||||
export const renderTeamDeleteIn1MonthMail = make(
|
||||
TeamDeleteInOneMonth,
|
||||
props =>
|
||||
`[Action Required] Important: Your workspace ${props.workspace.name} will be deleted soon`
|
||||
);
|
||||
|
||||
export const renderTeamWorkspaceDeletedMail = make(
|
||||
TeamWorkspaceDeleted,
|
||||
props => `Your workspace ${props.workspace.name} has been deleted`
|
||||
);
|
||||
|
||||
export const renderTeamWorkspaceExpireSoonMail = make(
|
||||
TeamExpireSoon,
|
||||
props =>
|
||||
`[Action Required] Your ${props.workspace.name} team workspace will expire soon`
|
||||
);
|
||||
|
||||
export const renderTeamWorkspaceExpiredMail = make(
|
||||
TeamExpired,
|
||||
props => `Your ${props.workspace.name} team workspace has expired`
|
||||
);
|
||||
|
||||
export const renderTeamLicenseMail = make(
|
||||
TeamLicense,
|
||||
'Your AFFiNE Self-Hosted Team Workspace license is ready'
|
||||
);
|
||||
export type MailName = keyof typeof Renderers;
|
||||
export type MailProps<T extends MailName> = Parameters<
|
||||
(typeof Renderers)[T]
|
||||
>[0];
|
||||
|
||||
Reference in New Issue
Block a user