add lookup
This commit is contained in:
39
apps/id.saladeaula.digital/app/routes/register/data.ts
Normal file
39
apps/id.saladeaula.digital/app/routes/register/data.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { z } from 'zod'
|
||||
import { isValidCPF } from '@brazilian-utils/brazilian-utils'
|
||||
import { createContext } from 'react'
|
||||
|
||||
const isName = (name: string) => name && name.includes(' ')
|
||||
|
||||
export type User = {
|
||||
id?: string | null
|
||||
cpf: string
|
||||
name: string
|
||||
email: string
|
||||
}
|
||||
|
||||
export const cpf = z
|
||||
.string()
|
||||
.nonempty('Digite seu CPF')
|
||||
.refine(isValidCPF, 'Deve ser um CPF válido')
|
||||
|
||||
export const formSchema = z.object({
|
||||
name: z
|
||||
.string()
|
||||
.trim()
|
||||
.nonempty('Digite seu nome')
|
||||
.refine(isName, { message: 'Nome inválido' }),
|
||||
email: z.email('Digite seu email'),
|
||||
password: z
|
||||
.string()
|
||||
.nonempty('Digite sua senha')
|
||||
.min(6, 'Deve ter no mínimo 6 caracteres'),
|
||||
cpf: cpf
|
||||
})
|
||||
|
||||
export type Schema = z.infer<typeof formSchema>
|
||||
|
||||
export type RegisterContextProps = {
|
||||
user: User | null
|
||||
setUser: (user: User) => void
|
||||
}
|
||||
export const RegisterContext = createContext<RegisterContextProps | null>(null)
|
||||
Reference in New Issue
Block a user