From a7a6e965979f7c46c2511a33cb601172573f3c84 Mon Sep 17 00:00:00 2001 From: zwlucas Date: Tue, 1 Apr 2025 14:30:52 -0300 Subject: removed cpf --- app/confirmar/page.tsx | 41 +------- app/listagem/page.tsx | 18 ++-- app/obrigado/page.tsx | 8 +- app/page.tsx | 262 +++++++++++++++++-------------------------------- app/votar/page.tsx | 101 +++++++++---------- 5 files changed, 159 insertions(+), 271 deletions(-) (limited to 'app') diff --git a/app/confirmar/page.tsx b/app/confirmar/page.tsx index a8b6f1c..5ca80a1 100644 --- a/app/confirmar/page.tsx +++ b/app/confirmar/page.tsx @@ -18,50 +18,22 @@ export default function ConfirmPage() { const searchParams = useSearchParams(); const rm = searchParams.get("rm") || ""; const nome = searchParams.get("nome") || ""; - const cpf = searchParams.get("cpf") || ""; useEffect(() => { - if (!rm || !nome || !cpf) { + if (!rm || !nome) { router.push("/"); return; } - }, [rm, nome, cpf, router]); + }, [rm, nome, router]); const handleConfirm = () => { - router.push(`/votar?rm=${rm}&nome=${encodeURIComponent(nome)}&cpf=${cpf}`); + router.push(`/votar?rm=${rm}&nome=${encodeURIComponent(nome)}`); }; const handleCancel = () => { router.push("/"); }; - const formatCPFDisplay = (cpf: string) => { - if (cpf.includes(".") || cpf.includes("-")) return cpf; - - const cpfClean = cpf.replace(/\D/g, ""); - - if (cpfClean.length === 11) { - return `${cpfClean.substring(0, 3)}.${cpfClean.substring( - 3, - 6 - )}.${cpfClean.substring(6, 9)}-${cpfClean.substring(9, 11)}`; - } - - return cpf; - }; - - const maskCPF = (cpf: string) => { - const formatted = formatCPFDisplay(cpf); - const parts = formatted.split("."); - if (parts.length === 3) { - const lastPart = parts[2].split("-"); - if (lastPart.length === 2) { - return `${parts[0]}.${parts[1]}.${"***"}-${lastPart[1]}`; - } - } - return formatted; - }; - return (
@@ -99,13 +71,6 @@ export default function ConfirmPage() {
{nome}
- -
- CPF: -
-
- {maskCPF(cpf)} -
diff --git a/app/listagem/page.tsx b/app/listagem/page.tsx index c15cdf0..fb4ec98 100644 --- a/app/listagem/page.tsx +++ b/app/listagem/page.tsx @@ -31,6 +31,9 @@ export default function ListVotes() { console.error("Erro ao procurar votos:", error); setSaveStatus("error"); + setSieNumberVotes(0); + setLjNumberVotes(0); + setErrorMessage( "Ocorreu um erro ao procurar votos. Por favor, informe ao responsável." ); @@ -39,11 +42,11 @@ export default function ListVotes() { setNumberVotes(data.length); - const sieData = data.filter((vote) => vote.option_voted == "SIE"); + const sieData = data.filter((vote) => vote.option == "SIE"); setSieNumberVotes(sieData.length); const ljData = data.filter( - (vote) => vote.option_voted == "Liderança Jovem" + (vote) => vote.option == "Liderança Jovem" ); setLjNumberVotes(ljData.length); }; @@ -76,17 +79,20 @@ export default function ListVotes() { className="flex h-40 flex-col items-center justify-center border-2 border-[#004a93] bg-white p-4 text-xl font-bold text-[#004a93] hover:bg-[#e6f0fa]" variant="outline" > -
{sieNumberVotes}
- SIE +
{ljNumberVotes}
+ Liderança Jovem +
+ Votos totais: {numberVotes} +
Todos os dados são em tempo real!
diff --git a/app/obrigado/page.tsx b/app/obrigado/page.tsx index 7234012..7805719 100644 --- a/app/obrigado/page.tsx +++ b/app/obrigado/page.tsx @@ -16,7 +16,6 @@ export default function ObrigadoPage() { const searchParams = useSearchParams(); const rm = searchParams.get("rm") || ""; const name = searchParams.get("nome") || ""; - const cpf = searchParams.get("cpf") || ""; const option = searchParams.get("option") || ""; const [countdown, setCountdown] = useState(5); @@ -28,7 +27,7 @@ export default function ObrigadoPage() { const hasRun = useRef(false); useEffect(() => { - if (!rm || !name || !cpf || !option) { + if (!rm || !name || !option) { window.location.href = "/"; return; } @@ -41,8 +40,7 @@ export default function ObrigadoPage() { { rm, name, - cpf: cpf.replace(/\D/g, ""), - option_voted: option, + option, }, ]); @@ -89,7 +87,7 @@ export default function ObrigadoPage() { }, 1000); return () => clearInterval(timer); - }, [rm, name, cpf, option]); + }, [rm, name, option]); return (
diff --git a/app/page.tsx b/app/page.tsx index eb00949..1799a26 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -18,58 +18,28 @@ import { useRouter } from "next/navigation"; export default function Home() { const [rm, setRm] = useState(""); const [nome, setNome] = useState(""); - const [cpf, setCpf] = useState(""); const [errors, setErrors] = useState<{ rm?: string; nome?: string; - cpf?: string; }>({}); const router = useRouter(); - function validateCPF(cpf: string): boolean { - cpf = cpf.replace(/\D/g, ""); - - if (cpf.length !== 11 || /^(\d)\1{10}$/.test(cpf)) return false; - - const calc = (factor: number) => - cpf - .split("") - .slice(0, factor - 1) - .reduce( - (sum, num, index) => sum + parseInt(num) * (factor - index), - 0 - ) % - 11 < - 2 - ? 0 - : 11 - - (cpf - .split("") - .slice(0, factor - 1) - .reduce( - (sum, num, index) => sum + parseInt(num) * (factor - index), - 0 - ) % - 11); - - return calc(10) === parseInt(cpf[9]) && calc(11) === parseInt(cpf[10]); - } - const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); - const newErrors: { rm?: string; nome?: string; cpf?: string } = {}; + const newErrors: { rm?: string; nome?: string } = {}; if (!/^\d{5}$/.test(rm)) { newErrors.rm = "O RM deve conter exatamente 5 dígitos numéricos."; } - if (!nome || nome.trim().length < 3) { - newErrors.nome = "Por favor, insira seu nome completo."; + const validPrefixes = ["22", "23", "24", "25"]; + if (!validPrefixes.includes(rm.substring(0, 2))) { + newErrors.rm = "O RM não é valido"; } - if (!validateCPF(cpf)) { - newErrors.cpf = "CPF inválido. Insira um CPF válido com 11 dígitos."; + if (!nome || nome.trim().length < 3) { + newErrors.nome = "Por favor, insira seu nome completo."; } if (Object.keys(newErrors).length > 0) { @@ -79,150 +49,102 @@ export default function Home() { setErrors({}); - router.push( - `/confirmar?rm=${rm}&nome=${encodeURIComponent(nome)}&cpf=${cpf}` - ); - }; - - const formatCPF = (value: string) => { - const cpfClean = value.replace(/\D/g, ""); - let formatted = cpfClean; - - if (cpfClean.length > 3) { - formatted = cpfClean.substring(0, 3) + "." + cpfClean.substring(3); - } - if (cpfClean.length > 6) { - formatted = formatted.substring(0, 7) + "." + cpfClean.substring(6, 9); - } - if (cpfClean.length > 9) { - formatted = formatted.substring(0, 11) + "-" + cpfClean.substring(9, 11); - } - - return formatted; - }; - - const handleCPFChange = (e: React.ChangeEvent) => { - const value = e.target.value; - const formatted = formatCPF(value); - setCpf(formatted); - - if (errors.cpf) { - setErrors((prev) => ({ ...prev, cpf: undefined })); - } + router.push(`/confirmar?rm=${rm}&nome=${encodeURIComponent(nome)}`); }; return (
-
-
-
- JUSTIÇA ELEITORAL ESTUDANTIL -
-
-
-
- - - - ELEIÇÕES ESTUDANTIS - - Identificação do Eleitor - - - -
-
- - { - setRm(e.target.value); - if (errors.rm) { - setErrors((prev) => ({ ...prev, rm: undefined })); - } - }} - placeholder="Digite os 5 dígitos do seu RM" - className="border-2 border-[#004a93]" - maxLength={5} - /> - {errors.rm && ( -

{errors.rm}

- )} -
- -
- - { - setNome(e.target.value); - if (errors.nome) { - setErrors((prev) => ({ ...prev, nome: undefined })); - } - }} - placeholder="Digite seu nome completo" - className="border-2 border-[#004a93]" - /> - {errors.nome && ( -

{errors.nome}

- )} +
+
+
+ JUSTIÇA ELEITORAL ESTUDANTIL +
+
+
-
- - - {errors.cpf && ( -

{errors.cpf}

- )} + + + + ELEIÇÕES ESTUDANTIS + + + Identificação do Eleitor + + + + +
+ + { + setRm(e.target.value); + if (errors.rm) { + setErrors((prev) => ({ ...prev, rm: undefined })); + } + }} + placeholder="Digite os 5 dígitos do seu RM" + className="border-2 border-[#004a93]" + maxLength={5} + /> + {errors.rm && ( +

{errors.rm}

+ )} +
+ +
+ + { + setNome(e.target.value); + if (errors.nome) { + setErrors((prev) => ({ ...prev, nome: undefined })); + } + }} + placeholder="Digite seu nome completo" + className="border-2 border-[#004a93]" + /> + {errors.nome && ( +

{errors.nome}

+ )} +
+ + + +
+ + Seu voto é secreto e seguro. + +
+ +
+
+ © {new Date().getFullYear()} Justiça Eleitoral Estudantil
- - - - - - Seu voto é secreto e seguro. - - - -
-
- © {new Date().getFullYear()} Justiça Eleitoral Estudantil
-
); } diff --git a/app/votar/page.tsx b/app/votar/page.tsx index 5ca0cb4..6d0efdc 100644 --- a/app/votar/page.tsx +++ b/app/votar/page.tsx @@ -16,31 +16,28 @@ export default function VotarPage() { const searchParams = useSearchParams(); const rm = searchParams.get("rm") || ""; const nome = searchParams.get("nome") || ""; - const cpf = searchParams.get("cpf") || ""; const [selectedOption, setSelectedOption] = useState(null); - const [audioElement, setAudioElement] = useState() + const [audioElement, setAudioElement] = useState(); useEffect(() => { - if (!rm || !nome || !cpf) { + if (!rm || !nome) { router.push("/"); return; } - const audio = new Audio('/confirma.mp3') - setAudioElement(audio) - }, [rm, nome, cpf, router]); + const audio = new Audio("/confirma.mp3"); + setAudioElement(audio); + }, [rm, nome, router]); const handleVote = (option: string) => { setSelectedOption(option); if (!audioElement) return; - audioElement.play() + audioElement.play(); setTimeout(() => { router.push( - `/obrigado?rm=${rm}&nome=${encodeURIComponent( - nome - )}&cpf=${cpf}&option=${option}` + `/obrigado?rm=${rm}&nome=${encodeURIComponent(nome)}&option=${option}` ); }, 500); }; @@ -48,53 +45,53 @@ export default function VotarPage() { return (
-
-
-
- JUSTIÇA ELEITORAL ESTUDANTIL +
+
+
+ JUSTIÇA ELEITORAL ESTUDANTIL +
+
+
-
-
-
- - - SEU VOTO PARA - - CHAPA DO GREMIO ESTUDANTIL - - - -
- - -
-
- Toque no quadro correspondente para VOTAR -
-
-
+ + + SEU VOTO PARA + + CHAPA DO GREMIO ESTUDANTIL + + + +
+ + +
+
+ Toque no quadro correspondente para VOTAR +
+
+
-
-
- © {new Date().getFullYear()} Justiça Eleitoral Estudantil +
+
+ © {new Date().getFullYear()} Justiça Eleitoral Estudantil +
-
); } -- cgit v1.2.3