"use client"; import { useState, useEffect } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; export default function VotarPage() { const router = useRouter(); const searchParams = useSearchParams(); const rm = searchParams.get("rm") || ""; const nome = searchParams.get("nome") || ""; const cpf = searchParams.get("cpf") || ""; const [selectedOption, setSelectedOption] = useState(null); const [audioContext, setAudioContext] = useState(null); useEffect(() => { if (!rm || !nome || !cpf) { router.push("/"); return; } setAudioContext( new (window.AudioContext || (window as any).webkitContext)() ); }, [rm, nome, cpf, router]); const handleVote = (option: string) => { setSelectedOption(option); if (!audioContext) return; const oscillator = audioContext.createOscillator(); const gainNode = audioContext.createGain(); oscillator.type = "sine"; oscillator.frequency.setValueAtTime(1000, audioContext.currentTime); gainNode.gain.setValueAtTime(0.5, audioContext.currentTime); oscillator.connect(gainNode); gainNode.connect(audioContext.destination); oscillator.start(); oscillator.stop(audioContext.currentTime + 0.2); setTimeout(() => { router.push( `/obrigado?rm=${rm}&nome=${encodeURIComponent( nome )}&cpf=${cpf}&option=${option}` ); }, 500); }; return (
JUSTIÇA ELEITORAL
SEU VOTO PARA CHAPA DO GREMIO ESTUDANTIL
Toque no quadro correspondente para VOTAR
© {new Date().getFullYear()} Justiça Eleitoral Estudantil
); }