"use client"; import React, { useEffect, useState } from 'react'; import { lmsApi, UserBookmark, Course, Module } from '@/lib/api'; import { Bookmark, ChevronRight, BookOpen, Clock, Trash2 } from 'lucide-react'; import Link from 'next/link'; import { formatDistanceToNow } from 'date-fns'; import { es } from 'date-fns/locale'; export default function BookmarksPage() { const [bookmarks, setBookmarks] = useState([]); const [courses, setCourses] = useState>({}); const [loading, setLoading] = useState(true); useEffect(() => { const fetchBookmarks = async () => { try { const data = await lmsApi.getBookmarks(); setBookmarks(data); // Fetch course details for each unique course_id const courseIds = [...new Set(data.map(b => b.course_id))]; const courseData: Record = {}; await Promise.all(courseIds.map(async (id) => { try { const outline = await lmsApi.getCourseOutline(id); courseData[id] = { ...outline.course, modules: outline.modules }; } catch (e) { console.error(`Error fetching course ${id}`, e); } })); setCourses(courseData); } catch (err) { console.error("Error fetching bookmarks:", err); } finally { setLoading(false); } }; fetchBookmarks(); }, []); const handleRemoveBookmark = async (lessonId: string) => { try { await lmsApi.toggleBookmark(lessonId); setBookmarks(prev => prev.filter(b => b.lesson_id !== lessonId)); } catch (err) { console.error("Error removing bookmark:", err); } }; if (loading) return
Cargando Marcadores...
; return (

Mis Lecciones Guardadas

Acceso rápido a los contenidos que marcaste como importantes

{bookmarks.length === 0 ? (

Aún no tienes marcadores

Cuando encuentres una lección interesante, haz clic en el icono de marcador para guardarla aquí.

) : (
{bookmarks.map((bookmark) => { const course = courses[bookmark.course_id]; return (
{course?.title || 'Curso'} Guardado {formatDistanceToNow(new Date(bookmark.created_at), { addSuffix: true, locale: es })}

{(() => { const lesson = course?.modules?.flatMap(m => m.lessons).find(l => l.id === bookmark.lesson_id); return lesson?.title || `Lección ${bookmark.lesson_id.substring(0, 8)}`; })()}

Continuar
); })}
)}
); }