diff --git a/src/components/verilogIDE/Practice.tsx b/src/components/verilogIDE/Practice.tsx
index af1ac52..c0e2a5d 100644
--- a/src/components/verilogIDE/Practice.tsx
+++ b/src/components/verilogIDE/Practice.tsx
@@ -216,7 +216,7 @@ export default function Practice({ question, id_quiz, initialCode, onChangeCode,
-
+
([]);
+ const [isSidebarOpen, setIsSidebarOpen] = useState(false);
+ const [activeQuestionId, setActiveQuestionId] = useState(null);
+
useEffect(() => {
if (!nome) return;
const originalTitle = document.title;
@@ -79,6 +86,12 @@ export default function QuizTries() {
const questionObjects = await fetchQuestion(questionIds);
setQuestions(questionObjects);
+ if (questionIds.length > 0 && quizId) {
+ const promises = questionIds.map((id: string) => fetchPostsByQuestion(id, quizId));
+ const postsForAllQuestions = await Promise.all(promises);
+ setPosts(postsForAllQuestions.flat());
+ }
+
const mcQuestionIds = questionObjects
.filter((q) => q.type === 1)
.map((q) => q.id);
@@ -141,6 +154,15 @@ export default function QuizTries() {
startQuiz();
}, [quizId]);
+ const handleOpenDiscussion = (questionId: string) => {
+ setActiveQuestionId(questionId);
+ setIsSidebarOpen(true);
+ };
+
+ const handlePostCreated = (newPost: Post) => {
+ setPosts(prev => [newPost, ...(prev ?? [])]);
+ };
+
const renderQuestions = (questions: Question[]) => {
return questions.map((question) => {
const resultData = UserQuizQuestion?.find(
@@ -167,6 +189,18 @@ export default function QuizTries() {
{getTitle(question.type)}
+
+
+
{question.type === 0 && (
@@ -259,22 +293,39 @@ export default function QuizTries() {
-
-
{nome}
-
-
+
-
-
-
+
+ {/* Coluna Principal: Conteúdo do Quiz */}
+
+
Sua pontuação: {score}/{quizMaxScore}
{Questions && renderQuestions(Questions)}
-
+
+ {/* Coluna Lateral: Fórum (renderizada condicionalmente) */}
+ {isSidebarOpen && (
+
+ setIsSidebarOpen(false)}
+ quizId={quizId!}
+ />
+
+ )}
+
+
>