import { FolderKanban, MapIcon, Plus, Sparkle, Eye, EyeOff, } from 'lucide-react'; import { useState } from 'react'; import type { ProjectStatusDocument } from '../Projects/ListProjectSolutions.tsx'; import { CheckIcon } from '../ReactIcons/CheckIcon.tsx'; import type { UserProgress } from '../TeamProgress/TeamProgressPage.tsx'; import { HeroProject } from './HeroProject'; import { HeroRoadmap } from './HeroRoadmap'; import { CreateRoadmapButton } from '../CustomRoadmap/CreateRoadmap/CreateRoadmapButton.tsx'; import { HeroItemsGroup } from './HeroItemsGroup'; export type AIRoadmapType = { id: string; title: string; slug: string; }; type FavoriteRoadmapsProps = { progress: UserProgress[]; projects: (ProjectStatusDocument & { title: string; })[]; customRoadmaps: UserProgress[]; aiRoadmaps: AIRoadmapType[]; isLoading: boolean; }; export function FavoriteRoadmaps(props: FavoriteRoadmapsProps) { const { progress, isLoading, customRoadmaps, aiRoadmaps, projects } = props; const [showCompleted, setShowCompleted] = useState(false); const completedProjects = projects.filter( (project) => project.submittedAt && project.repositoryUrl, ); const inProgressProjects = projects.filter( (project) => !project.submittedAt || !project.repositoryUrl, ); const projectsToShow = [ ...inProgressProjects, ...(showCompleted ? completedProjects : []), ]; return (
} isLoading={isLoading} title="Your progress and bookmarks" > {progress.map((resource) => ( ))} } isLoading={isLoading} title="Your custom roadmaps" > {customRoadmaps.map((customRoadmap) => ( ))} } isLoading={isLoading} title="Your AI roadmaps" > {aiRoadmaps.map((aiRoadmap) => ( ))} Generate New } isLoading={isLoading} title="Your active projects" rightContent={ completedProjects.length > 0 && ( ) } className="border-b-0" > {projectsToShow.map((project) => ( ))} Start a new project
); }