feat: add editable ordered trail pages
All checks were successful
CI / Validate frontend and API (push) Successful in 36s
CI / Build and publish Docker images (push) Successful in 20s

This commit is contained in:
Cauê Faleiros
2026-09-08 15:53:20 -03:00
parent aec9c001d3
commit f5aa826b32
7 changed files with 185 additions and 3 deletions

View File

@@ -40,6 +40,7 @@ import { getManagedCourses, saveCourse, deleteCourse, duplicateCourse, getCommen
import { getAttachmentIcon, getAttachmentBadge } from '../components/MaterialCard';
import { CourseCoverImage } from '../components/CourseCoverImage';
import { BunnyVideo, courseApi, instructorApi, InstructorAnalytics } from '../services/api';
import { useSearchParams } from 'react-router-dom';
const formatVideoDuration = (seconds: number | null | undefined) => {
if (!seconds || seconds < 1) return 'Processando';
@@ -904,6 +905,7 @@ const CourseModal: React.FC<{
};
export const ManageCourses: React.FC = () => {
const [searchParams, setSearchParams] = useSearchParams();
const [courses, setCourses] = useState<Course[]>([]);
const [isModalOpen, setIsModalOpen] = useState(false);
const [editingCourse, setEditingCourse] = useState<Course | undefined>(undefined);
@@ -936,6 +938,17 @@ export const ManageCourses: React.FC = () => {
loadData();
}, []);
useEffect(() => {
const courseId = searchParams.get('editar');
if (!courseId || courses.length === 0) return;
const course = courses.find((item) => item.id === courseId);
if (course) {
setEditingCourse(course);
setIsModalOpen(true);
}
setSearchParams({}, { replace: true });
}, [courses, searchParams, setSearchParams]);
const handleCreate = () => {
setEditingCourse(undefined);
setIsModalOpen(true);