From 81a67bf1235fec06698cdcc3e380f97ce3ac430b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Tue, 8 Sep 2026 16:27:00 -0300 Subject: [PATCH] fix: load trail courses from course manager --- pages/TrailDetail.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pages/TrailDetail.tsx b/pages/TrailDetail.tsx index be719f5..f297af2 100644 --- a/pages/TrailDetail.tsx +++ b/pages/TrailDetail.tsx @@ -1,12 +1,12 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'; import { ArrowDown, ArrowLeft, ArrowUp, BookOpen, ExternalLink, Loader2, Pencil, Plus, Save, Trash2, Upload, X } from 'lucide-react'; import { useNavigate, useParams } from 'react-router-dom'; -import { adminApi, instructorApi, LearningPath, LearningPathInput, TrailCourseOption } from '../services/api'; -import { deleteCourse } from '../services/db'; +import { adminApi, instructorApi, LearningPath, LearningPathInput } from '../services/api'; +import { deleteCourse, getManagedCourses } from '../services/db'; import { CourseCoverImage } from '../components/CourseCoverImage'; import { useToast } from '../context/ToastContext'; -type CourseOption = TrailCourseOption; +type CourseOption = { id: string; title: string; status: string; category: string; coverImageUrl: string | null }; const emptyInput = (): LearningPathInput => ({ title: '', description: '', coverImageUrl: null, coverImageZoom: 1, coverImagePositionX: 50, coverImagePositionY: 50, status: 'draft', courseIds: [] }); const toInput = (trail: LearningPath): LearningPathInput => ({ title: trail.title, description: trail.description, coverImageUrl: trail.coverImageUrl, coverImageZoom: trail.coverImageZoom, coverImagePositionX: trail.coverImagePositionX, coverImagePositionY: trail.coverImagePositionY, status: trail.status === 'published' ? 'published' : 'draft', courseIds: trail.courses.map((course) => course.id) }); @@ -26,8 +26,14 @@ export const TrailDetail: React.FC = () => { const load = async () => { setIsLoading(true); try { - const [pathsResponse, coursesResponse] = await Promise.all([adminApi.listPaths(), adminApi.listPathCourses()]); - setCourses(coursesResponse.data); + const [pathsResponse, managedCourses] = await Promise.all([adminApi.listPaths(), getManagedCourses()]); + setCourses(managedCourses.map((course) => ({ + id: course.id, + title: course.title, + status: course.status || 'draft', + category: course.category, + coverImageUrl: course.thumbnail || null, + }))); if (!isNew) { const found = pathsResponse.data.find((item) => item.id === trailId); if (!found) { showToast('Trilha não encontrada.', 'error'); navigate('/admin'); return; }