diff --git a/id.saladeaula.digital/client/app/routes/deny.tsx b/id.saladeaula.digital/client/app/routes/deny.tsx index e59263d..1fd9e2f 100644 --- a/id.saladeaula.digital/client/app/routes/deny.tsx +++ b/id.saladeaula.digital/client/app/routes/deny.tsx @@ -2,7 +2,7 @@ import { LockIcon } from 'lucide-react' import type { Route } from './+types' export function meta({}: Route.MetaArgs) { - return [{ title: 'Acesso negado' }] + return [{ title: 'Acesso negado · EDUSEG®' }] } export default function Deny({}: Route.ComponentProps) { diff --git a/id.saladeaula.digital/client/app/routes/forgot.tsx b/id.saladeaula.digital/client/app/routes/forgot.tsx index 2be4e5d..3b81405 100644 --- a/id.saladeaula.digital/client/app/routes/forgot.tsx +++ b/id.saladeaula.digital/client/app/routes/forgot.tsx @@ -21,13 +21,14 @@ import { z } from 'zod' const schema = z.object({ username: z .string() + .trim() .nonempty('Digite seu Email ou CPF') .refine((val) => { const onlyDigits = val.replace(/\D/g, '') return onlyDigits.length === 11 ? isValidCPF(val) - : z.string().email().safeParse(val).success + : z.email().safeParse(val).success }, 'Deve ser um Email ou CPF válido') }) diff --git a/id.saladeaula.digital/client/app/routes/index.tsx b/id.saladeaula.digital/client/app/routes/index.tsx index 26b2533..e4253e7 100644 --- a/id.saladeaula.digital/client/app/routes/index.tsx +++ b/id.saladeaula.digital/client/app/routes/index.tsx @@ -13,7 +13,7 @@ import { zodResolver } from '@hookform/resolvers/zod' import { Loader2Icon } from 'lucide-react' import { useEffect, useState } from 'react' import { useForm } from 'react-hook-form' -import { Link, redirect, useFetcher } from 'react-router' +import { Link, useFetcher } from 'react-router' import { z } from 'zod' import logo from '@/components/logo.svg' @@ -26,15 +26,19 @@ import * as httpStatus from '@/lib/http-status' const schema = z.object({ username: z .string() + .trim() .nonempty('Digite seu Email ou CPF') .refine((val) => { const onlyDigits = val.replace(/\D/g, '') return onlyDigits.length === 11 ? isValidCPF(val) - : z.string().email().safeParse(val).success + : z.email().safeParse(val).success }, 'Deve ser um Email ou CPF válido'), - password: z.string().nonempty('Digite sua senha') + password: z + .string() + .nonempty('Digite sua senha') + .min(6, 'Deve ter no mínimo 6 caracteres') }) type Schema = z.infer @@ -43,13 +47,6 @@ export function meta({}: Route.MetaArgs) { return [{ title: 'EDUSEG®' }] } -export async function loader({ request }: Route.ActionArgs) { - const url = new URL(request.url) - if (!url.searchParams.has('client_id')) { - return redirect('//scorm.eduseg.workers.dev/') - } -} - export async function action({ request, context }: Route.ActionArgs) { const issuerUrl = new URL('/session', context.cloudflare.env.ISSUER_URL) const formData = Object.fromEntries(await request.formData()) @@ -105,12 +102,13 @@ export default function Index({}: Route.ComponentProps) { switch (message) { case 'User not found': return setError('username', { - message: 'Usuário não encontrado', + message: + 'Conta não encontrada. Certifique-se de que está usando o Email ou CPF correto.', type: 'manual' }) case 'Invalid credentials': return setError('password', { - message: 'A senha está incorreta', + message: 'A senha está incorreta.', type: 'manual' }) } diff --git a/id.saladeaula.digital/client/app/routes/signup.tsx b/id.saladeaula.digital/client/app/routes/signup.tsx index 8aacb93..81d2dc8 100644 --- a/id.saladeaula.digital/client/app/routes/signup.tsx +++ b/id.saladeaula.digital/client/app/routes/signup.tsx @@ -22,9 +22,12 @@ import { useForm } from 'react-hook-form' import { z } from 'zod' const schema = z.object({ - name: z.string().nonempty('Digite seu nome'), + name: z.string().trim().nonempty('Digite seu nome'), email: z.email('Digite seu email'), - password: z.string().nonempty('Digite sua senha'), + password: z + .string() + .nonempty('Digite sua senha') + .min(6, 'Deve ter no mínimo 6 caracteres'), cpf: z .string() .nonempty('Digite seu CPF')