From a6f53ff0d30f4dbd214642aa121558f0bdff97d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Fri, 4 Sep 2026 18:15:40 -0300 Subject: [PATCH] fix: use existing course groups as trails --- pages/SuperAdmin.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/SuperAdmin.tsx b/pages/SuperAdmin.tsx index 281678e..c3e8ebb 100644 --- a/pages/SuperAdmin.tsx +++ b/pages/SuperAdmin.tsx @@ -49,7 +49,7 @@ export const SuperAdmin: React.FC = () => {
} label="Usuários" value={analytics?.totalUsers ?? users.length} />} label="Contas ativas" value={analytics?.activeUsers ?? activeUsers} />} label="Instrutores" value={instructorUsers} />} label="Cursos publicados" value={analytics?.publishedCourses ?? 0} />} label="Aulas concluídas" value={analytics?.completedLessons ?? 0} />
setActiveTab('courses')} label="Cursos" /> setActiveTab('trails')} label="Trilhas" /> setActiveTab('home')} label="Página inicial" /> setActiveTab('access')} label="Acessos" />
{activeTab === 'courses' && navigate('/gerenciar')} />} - {activeTab === 'trails' && <>} + {activeTab === 'trails' && } {activeTab === 'home' && <>} {activeTab === 'access' && } {isPathEditorOpen && } @@ -66,6 +66,8 @@ const TabButton: React.FC<{ active: boolean; onClick: () => void; label: string const StatCard: React.FC<{ icon: React.ReactNode; label: string; value: number }> = ({ icon, label, value }) =>
{icon}{label}
{value}
; const DetailMetric: React.FC<{ label: string; value: string }> = ({ label, value }) =>
{label}
{value}
; +const TrailManager: React.FC<{ trails: Array<{ id: string; name: string; position: number; isActive: boolean }>; newTrail: string; setNewTrail: (value: string) => void; onCreate: (event: React.FormEvent) => void; onToggle: (trail: { id: string; name: string; position: number; isActive: boolean }) => void }> = ({ trails, newTrail, setNewTrail, onCreate, onToggle }) =>

Trilhas

Organize os temas que agrupam os cursos da plataforma.

setNewTrail(event.target.value)} placeholder="Nome da nova trilha" className="min-w-0 flex-1 rounded-xl border border-white/10 bg-zinc-900 px-3 py-2.5 text-sm text-white" />
{trails.length === 0 ?

Nenhuma trilha criada ainda.

: trails.map((trail) =>
{trail.name}
)}
; + const CategoryManager: React.FC<{ categories: Array<{ id: string; name: string; position: number; isActive: boolean }>; newCategory: string; setNewCategory: (value: string) => void; onCreate: (event: React.FormEvent) => void; onToggle: (category: { id: string; name: string; position: number; isActive: boolean }) => void }> = ({ categories, newCategory, setNewCategory, onCreate, onToggle }) =>

Categorias das trilhas

Organize os temas disponíveis para cursos e trilhas.

setNewCategory(event.target.value)} placeholder="Nome da categoria" className="min-w-0 flex-1 rounded-xl border border-white/10 bg-zinc-900 px-3 py-2.5 text-sm text-white" />
{categories.map((category) => )}
; const HomepageConfigurationPanel: React.FC<{ homeConfiguration: HomeConfiguration | null; homeCourses: CourseOption[]; setHomeConfiguration: React.Dispatch>; onMoveHomeCourse: (courseId: string, direction: -1 | 1) => void; onSaveHome: () => void }> = ({ homeConfiguration, homeCourses, setHomeConfiguration, onMoveHomeCourse, onSaveHome }) =>

Vitrine de cursos

Defina a ordem dos cursos abaixo dos banners.

{homeConfiguration &&
{homeCourses.map((course, index) =>
{index + 1}{course.title}
)}
}
;