Files
myeasycms-v2/packages/features/team-accounts/src/schema/invite-members.schema.ts
giancarlo 78b6ae1ab0 Add team member invitation success and error messages
The code now includes success and error messages for team member invitation completion. It validates entered email addresses for duplicates and sets a limit on the number of invitations that can be sent at once to avoid server spam. Also, visual changes have been made to the form - label placement, form message, button types, etc.
2024-04-13 20:24:23 +08:00

27 lines
562 B
TypeScript

import { z } from 'zod';
const InviteSchema = z.object({
email: z.string().email(),
role: z.string().min(1).max(100),
});
export const InviteMembersSchema = z
.object({
invitations: InviteSchema.array().min(1).max(5),
})
.refine(
(data) => {
const emails = data.invitations.map((member) =>
member.email.toLowerCase(),
);
const uniqueEmails = new Set(emails);
return emails.length === uniqueEmails.size;
},
{
message: 'Duplicate emails are not allowed',
path: ['invitations'],
},
);