import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { ChevronLeft, Menu } from "lucide-react" import { useEffect, useState } from "react"; import { ToastContainer, toast } from "react-toastify" import 'react-toastify/dist/ReactToastify.css'; import { Switch } from "@/components/ui/switch" import { Label } from "@/components/ui/label" import { Input } from "@/components/ui/input" function App() { const [schoolSubject, setSchoolSubject] = useState("biologia"); const [subject, setSubject] = useState(""); const [difficultie, setDifficultie] = useState(""); const [menuState, setMenuState] = useState(true); const [isLoading, setIsLoading] = useState(false); const [questions, setQuestions] = useState(null); const [promptMode, setPromptMode] = useState(false); const [promptValue, setPromptValue] = useState(''); const schoolSubjects = [ { label: "História", value: "historia" }, { label: "Biologia", value: "biologia" }, ]; const historySubjects = [ { label: "Revoluções", value: "revoluções" }, { label: "Grécia", value: "grécia" }, { label: "Roma", value: "roma" }, { label: "Primeira Guerra Mundial", value: "primeira guerra mundial" }, { label: "Guerra Fria", value: "guerra fria" }, { label: "Feudalismo", value: "feudalismo" }, ] const biologySubjects = [ { label: "Fisiologia", value: "fisiologia" }, { label: "Embriologia", value: "embriologia" }, { label: "Citologia", value: "citologia" }, { label: "Genética", value: "genetica" }, { label: "Botânica", value: "botanica" }, { label: "Zoologia", value: "zoologia" }, { label: "Morfologia", value: "morfologia" }, { label: "Ecologia", value: "ecologia" }, { label: "Biofísica", value: "biofisica" }, ] const difficulties = [ { label: "Fácil", value: "facil" }, { label: "Intermediária", value: "intermediaria" }, { label: "Difícil", value: "dificil" }, ] const handleSubmit = async (e) => { e.preventDefault(); setIsLoading(true); try { const body = promptMode ? { promptValue } : { subject, difficultie, school_subject: schoolSubject }; const res = await fetch("/generate_questions", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body) }); console.log(res) if (res.ok) { const data = await res.json(); console.log(data) setQuestions(data.rag_result.questions); setPromptValue(''); } else { toast.error("Erro ao gerar questões", { position: "top-right", autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, className: "bg-slate-900 text-white font-semibold", }); } } catch (err) { console.error(err); toast.error("Erro ao gerar questões", { position: "top-right", autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, className: "bg-slate-900 text-white font-semibold", }); } setIsLoading(false); } useEffect(() => { const handleResize = () => { if (window.innerWidth > 768) { setMenuState(true); } else { setMenuState(false); } } window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); } , []); return (
setMenuState(prev => !prev)} />

Pergunt.

{menuState &&
setMenuState(prev => !prev)} />
{!promptMode && (

Selecione uma matéria:

Selecione um conteúdo:

Selecione uma dificuldade:

)}
}
{promptMode &&

Digite seu prompt para gerarmos as questões!

setPromptValue(e.target.value)} />
}

Questões

{questions ? questions.map(({ question, options, answer }, index) => (
{question}

{options.map((option, i) => (
{option}
))}
Resposta correta: {answer}
)) : !promptMode &&
Escolha os filtros para criar as questões
}
) } export default App