Skip to content

Commit 6a90d3b

Browse files
committed
retira erro de lint
1 parent 0a3f3a7 commit 6a90d3b

File tree

13 files changed

+1188
-941
lines changed

13 files changed

+1188
-941
lines changed

frontend/src/app/(home)/create/page.tsx

Lines changed: 250 additions & 219 deletions
Large diffs are not rendered by default.

frontend/src/app/(home)/create/questions/questions.tsx

Lines changed: 111 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -2,115 +2,133 @@
22
"use client";
33

44
import { useState, useEffect } from "react";
5-
import AutomaticQuestions, { AutomaticModeData, GenerationMode } from "./automatico/automatico";
5+
import AutomaticQuestions, {
6+
AutomaticModeData,
7+
GenerationMode,
8+
} from "./automatico/automatico";
69
import ManualQuestions from "./manual";
710
import { QuestionData } from "../page";
811
import { Button } from "@/components/ui/button";
912
import { BsPencil } from "react-icons/bs";
1013

1114
interface QuestionsProps {
12-
onQuestionsChange: (questions: QuestionData[]) => void;
13-
onAutomaticDataChange: (data: AutomaticModeData | null) => void;
14-
onModeChange: (mode: "manual" | "automatic") => void;
15-
questions: QuestionData[];
16-
themeId: string;
17-
subTopicId: string;
18-
onSubmit?: () => void;
15+
onQuestionsChange: (questions: QuestionData[]) => void;
16+
onAutomaticDataChange: (data: AutomaticModeData | null) => void;
17+
onModeChange: (mode: "manual" | "automatic") => void;
18+
questions: QuestionData[];
19+
themeId: string;
20+
subTopicId: string;
21+
onSubmit?: () => void;
1922
}
2023

2124
export default function Questions({
22-
onQuestionsChange,
23-
onAutomaticDataChange,
24-
onModeChange,
25-
questions,
26-
themeId,
27-
subTopicId,
28-
onSubmit,
25+
onQuestionsChange,
26+
onAutomaticDataChange,
27+
onModeChange,
28+
questions,
29+
themeId,
30+
subTopicId,
31+
onSubmit,
2932
}: QuestionsProps) {
30-
const [currentMode, setCurrentMode] = useState<GenerationMode | "manual" | null>(null);
33+
const [currentMode, setCurrentMode] = useState<
34+
GenerationMode | "manual" | null
35+
>(null);
36+
37+
useEffect(() => {
38+
if (currentMode === "manual") {
39+
onModeChange("manual");
40+
} else if (currentMode) {
41+
onModeChange("automatic");
42+
}
43+
}, [currentMode, onModeChange]);
44+
45+
const handleModeSelect = (mode: GenerationMode) => {
46+
setCurrentMode(mode);
47+
};
48+
49+
const handleBack = () => {
50+
setCurrentMode(null);
51+
};
3152

32-
useEffect(() => {
3353
if (currentMode === "manual") {
34-
onModeChange("manual");
35-
} else if (currentMode) {
36-
onModeChange("automatic");
54+
return (
55+
<div className="h-full flex flex-col">
56+
<div className="mb-4">
57+
<Button
58+
variant="ghost"
59+
onClick={handleBack}
60+
className="mb-2"
61+
>
62+
← Voltar para seleção
63+
</Button>
64+
</div>
65+
<ManualQuestions
66+
onQuestionsChange={onQuestionsChange}
67+
questions={questions}
68+
onSubmit={onSubmit}
69+
/>
70+
</div>
71+
);
3772
}
38-
}, [currentMode, onModeChange]);
39-
40-
const handleModeSelect = (mode: GenerationMode) => {
41-
setCurrentMode(mode);
42-
};
4373

44-
const handleBack = () => {
45-
setCurrentMode(null);
46-
};
74+
// Se for um modo automático específico (text, document, audio), renderiza o AutomaticQuestions com esse modo
75+
if (currentMode) {
76+
return (
77+
<div className="h-full flex flex-col">
78+
<div className="mb-4">
79+
<Button
80+
variant="ghost"
81+
onClick={handleBack}
82+
className="mb-2"
83+
>
84+
← Voltar para seleção
85+
</Button>
86+
</div>
87+
<AutomaticQuestions
88+
mode={currentMode}
89+
onModeSelect={handleModeSelect}
90+
onDataChange={onAutomaticDataChange}
91+
onSubmit={onSubmit}
92+
/>
93+
</div>
94+
);
95+
}
4796

48-
if (currentMode === "manual") {
97+
// Se não tiver modo selecionado, mostra a tela de seleção unificada
4998
return (
50-
<div className="h-full flex flex-col">
51-
<div className="mb-4">
52-
<Button variant="ghost" onClick={handleBack} className="mb-2">
53-
← Voltar para seleção
54-
</Button>
99+
<div className="overflow-hidden h-full">
100+
<div className="overflow-auto h-fit p-1">
101+
{/* Renderiza o componente AutomaticQuestions no modo de seleção (null) */}
102+
<AutomaticQuestions
103+
mode={null}
104+
onModeSelect={handleModeSelect}
105+
onDataChange={onAutomaticDataChange}
106+
/>
107+
108+
{/* Card Manual adicionado abaixo */}
109+
<div className="max-w-5xl mx-auto mt-6">
110+
<h3 className="text-2xl font-bold mb-4">
111+
Ou crie manualmente
112+
</h3>
113+
<button
114+
onClick={() => setCurrentMode("manual")}
115+
className="w-full group bg-layout-card border-2 rounded-xl p-6 hover:border-orange-500 hover:shadow-lg transition-all duration-200 text-left flex items-center gap-6"
116+
>
117+
<div className="w-14 h-14 bg-orange-100 rounded-lg flex items-center justify-center shrink-0 group-hover:bg-orange-500 transition-colors">
118+
<BsPencil className="w-7 h-7 text-orange-600 group-hover:text-white transition-colors" />
119+
</div>
120+
<div>
121+
<h3 className="text-xl font-semibold mb-2">
122+
Manual
123+
</h3>
124+
<p className="text-sm">
125+
Crie suas próprias questões do zero, definindo
126+
enunciados e alternativas
127+
</p>
128+
</div>
129+
</button>
130+
</div>
55131
</div>
56-
<ManualQuestions
57-
onQuestionsChange={onQuestionsChange}
58-
questions={questions}
59-
onSubmit={onSubmit}
60-
/>
61132
</div>
62133
);
63-
}
64-
65-
// Se for um modo automático específico (text, document, audio), renderiza o AutomaticQuestions com esse modo
66-
if (currentMode && currentMode !== "manual") {
67-
return (
68-
<div className="h-full flex flex-col">
69-
<div className="mb-4">
70-
<Button variant="ghost" onClick={handleBack} className="mb-2">
71-
← Voltar para seleção
72-
</Button>
73-
</div>
74-
<AutomaticQuestions
75-
mode={currentMode}
76-
onModeSelect={handleModeSelect}
77-
onDataChange={onAutomaticDataChange}
78-
onSubmit={onSubmit}
79-
/>
80-
</div>
81-
);
82-
}
83-
84-
// Se não tiver modo selecionado, mostra a tela de seleção unificada
85-
return (
86-
<div className="overflow-hidden h-full">
87-
<div className="overflow-auto h-fit p-1">
88-
{/* Renderiza o componente AutomaticQuestions no modo de seleção (null) */}
89-
<AutomaticQuestions
90-
mode={null}
91-
onModeSelect={handleModeSelect}
92-
onDataChange={onAutomaticDataChange}
93-
/>
94-
95-
{/* Card Manual adicionado abaixo */}
96-
<div className="max-w-5xl mx-auto mt-6">
97-
<h3 className="text-2xl font-bold mb-4">Ou crie manualmente</h3>
98-
<button
99-
onClick={() => setCurrentMode("manual")}
100-
className="w-full group bg-layout-card border-2 rounded-xl p-6 hover:border-orange-500 hover:shadow-lg transition-all duration-200 text-left flex items-center gap-6"
101-
>
102-
<div className="w-14 h-14 bg-orange-100 rounded-lg flex items-center justify-center shrink-0 group-hover:bg-orange-500 transition-colors">
103-
<BsPencil className="w-7 h-7 text-orange-600 group-hover:text-white transition-colors" />
104-
</div>
105-
<div>
106-
<h3 className="text-xl font-semibold mb-2">Manual</h3>
107-
<p className="text-sm">
108-
Crie suas próprias questões do zero, definindo enunciados e alternativas
109-
</p>
110-
</div>
111-
</button>
112-
</div>
113-
</div>
114-
</div>
115-
);
116-
}
134+
}

frontend/src/app/(home)/home/acessibilidade.tsx

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,48 @@ export default function Acessibilidade() {
189189
<h2 className="font-semibold mb-3">Daltonismo</h2>
190190

191191
<div className="flex space-x-4">
192-
<Button size="sm" className={colorMode === "none" ? 'bg-qorange-default text-qorange-text hover:bg-qorange-hover' : "bg-qblue-default text-qblue-text hover:bg-qblue-hover"} onClick={() => setColorMode("none")}>
192+
<Button
193+
size="sm"
194+
className={
195+
colorMode === "none"
196+
? "bg-qorange-default text-qorange-text hover:bg-qorange-hover"
197+
: "bg-qblue-default text-qblue-text hover:bg-qblue-hover"
198+
}
199+
onClick={() => setColorMode("none")}
200+
>
193201
Normal
194202
</Button>
195-
<Button size="sm" className={colorMode === "protanopia" ? 'bg-qorange-default text-qorange-text hover:bg-qorange-hover' : "bg-qblue-default text-qblue-text hover:bg-qblue-hover"} onClick={() => setColorMode("protanopia")}>
203+
<Button
204+
size="sm"
205+
className={
206+
colorMode === "protanopia"
207+
? "bg-qorange-default text-qorange-text hover:bg-qorange-hover"
208+
: "bg-qblue-default text-qblue-text hover:bg-qblue-hover"
209+
}
210+
onClick={() => setColorMode("protanopia")}
211+
>
196212
Protanopia
197213
</Button>
198-
<Button size="sm" className={colorMode === "deuteranopia" ? 'bg-qorange-default text-qorange-text hover:bg-qorange-hover' : "bg-qblue-default text-qblue-text hover:bg-qblue-hover"} onClick={() => setColorMode("deuteranopia")}>
214+
<Button
215+
size="sm"
216+
className={
217+
colorMode === "deuteranopia"
218+
? "bg-qorange-default text-qorange-text hover:bg-qorange-hover"
219+
: "bg-qblue-default text-qblue-text hover:bg-qblue-hover"
220+
}
221+
onClick={() => setColorMode("deuteranopia")}
222+
>
199223
Deuteranopia
200224
</Button>
201-
<Button size="sm" className={colorMode === "tritanopia" ? 'bg-qorange-default text-qorange-text hover:bg-qorange-hover' : "bg-qblue-default text-qblue-text hover:bg-qblue-hover"} onClick={() => setColorMode("tritanopia")}>
225+
<Button
226+
size="sm"
227+
className={
228+
colorMode === "tritanopia"
229+
? "bg-qorange-default text-qorange-text hover:bg-qorange-hover"
230+
: "bg-qblue-default text-qblue-text hover:bg-qblue-hover"
231+
}
232+
onClick={() => setColorMode("tritanopia")}
233+
>
202234
Tritanopia
203235
</Button>
204236
</div>
Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
"use client";
22

3-
import { CiBookmarkPlus, CiUser, CiViewList } from "react-icons/ci";
4-
import { BsArrowUp, BsArrowDown, BsArrowLeft, BsArrowRight } from "react-icons/bs";
3+
import { CiBookmarkPlus, CiUser, CiViewList } from "react-icons/ci";
4+
import {
5+
BsArrowUp,
6+
BsArrowDown,
7+
BsArrowLeft,
8+
BsArrowRight,
9+
} from "react-icons/bs";
510
import HomeCard from "./card";
611
import Acessibilidade from "./acessibilidade";
712
import { useUser } from "@/hook/useUser";
@@ -35,7 +40,7 @@ export default function Home() {
3540
};
3641

3742
document.addEventListener("keydown", handleKeyDown);
38-
43+
3944
return () => {
4045
document.removeEventListener("keydown", handleKeyDown);
4146
};
@@ -48,38 +53,37 @@ export default function Home() {
4853
Olá, {user?.name || "Visitante"}!
4954
</h1>
5055
<div className="grid grid-cols-3 mt-2 gap-6">
51-
<HomeCard
52-
key= {1}
53-
title= "Criar Quiz"
54-
icon= {<CiBookmarkPlus />}
55-
description= "Crie seus próprios quizzes personalizados."
56-
href= "/create"
57-
ariaLabel= "Criar Quiz - Crie seus próprios quizzes personalizados."
58-
color= "create"
59-
cornerIcon={<BsArrowUp />}
60-
/>
61-
<HomeCard
62-
key= {3}
63-
title= "Ver Quizzes"
64-
icon= {<CiViewList />}
65-
description= "Veja sua lista de quizzes."
66-
href= "/play"
67-
color= "play"
68-
cornerIcon={<BsArrowDown />}
69-
/>
70-
<HomeCard
71-
key= {4}
72-
title= "Perfil"
73-
icon= {<CiUser />}
74-
description= "Acesse e edite seu perfil."
75-
href= "/profile"
76-
color= "ranking"
77-
cornerIcon={<BsArrowRight />}
78-
/>
56+
<HomeCard
57+
key={1}
58+
title="Criar Quiz"
59+
icon={<CiBookmarkPlus />}
60+
description="Crie seus próprios quizzes personalizados."
61+
href="/create"
62+
ariaLabel="Criar Quiz - Crie seus próprios quizzes personalizados."
63+
color="create"
64+
cornerIcon={<BsArrowUp />}
65+
/>
66+
<HomeCard
67+
key={3}
68+
title="Ver Quizzes"
69+
icon={<CiViewList />}
70+
description="Veja sua lista de quizzes."
71+
href="/play"
72+
color="play"
73+
cornerIcon={<BsArrowDown />}
74+
/>
75+
<HomeCard
76+
key={4}
77+
title="Perfil"
78+
icon={<CiUser />}
79+
description="Acesse e edite seu perfil."
80+
href="/profile"
81+
color="ranking"
82+
cornerIcon={<BsArrowRight />}
83+
/>
7984
</div>
8085
<Acessibilidade />
8186
</div>
82-
8387
</div>
8488
);
85-
}
89+
}

0 commit comments

Comments
 (0)