Skip to content

Commit 539f968

Browse files
committed
feat: add validation schema
1 parent 1a7ad93 commit 539f968

3 files changed

Lines changed: 20 additions & 0 deletions

File tree

src/constants/validation-schema.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { z } from 'zod'
2+
3+
import { isValidInviteCode } from '@/utils/validators'
4+
5+
export const formSchema = z.object({
6+
firstName: z.string().nonempty('First name is required'),
7+
lastName: z.string().nonempty('Last name is required'),
8+
email: z.string().email({ message: 'Invalid email address' }),
9+
note: z.string().nonempty('Note is required'),
10+
inviteCode: z
11+
.string()
12+
.nonempty('Invite code is required')
13+
.refine(isValidInviteCode, { message: 'Invalid invite code' }),
14+
})

src/types/form-types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import { z } from 'zod'
2+
3+
import { formSchema } from '@/constants/validation-schema'
4+
5+
export type FormSchema = z.infer<typeof formSchema>

src/utils/validators.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const isValidInviteCode = (code: string) => /^[C|G|D][A-Z0-9]+$/.test(code)

0 commit comments

Comments
 (0)