import React from "react"; import { motion, AnimatePresence } from "framer-motion"; import SectionTitle from "./SectionTitle"; import SectionWrapper from "../../shared/SectionWrapper"; import { Project, GlobalSettings } from "@/types/resume"; import { normalizeRichTextContent } from "@/lib/richText"; import { formatDateString } from "@/lib/utils"; import { useLocale } from "@/i18n/compat/client"; import { getProjectLinkMeta } from "@/lib/projectLink"; interface ProjectSectionProps { projects: Project[]; globalSettings?: GlobalSettings; showTitle?: boolean; } const ProjectSection: React.FC = ({ projects, globalSettings, showTitle = true }) => { const locale = useLocale(); const visibleProjects = projects?.filter((p) => p.visible); const centerSubtitle = globalSettings?.centerSubtitle; const flexLayout = globalSettings?.flexibleHeaderLayout; return ( {visibleProjects.map((project) => { const projectLink = getProjectLinkMeta(project, { preferFullUrl: centerSubtitle, }); return (

{project.name}

{projectLink && !centerSubtitle && ( {projectLink.label} )} {!projectLink && !centerSubtitle && !flexLayout &&
} {centerSubtitle && ( {project.role} )}
{formatDateString(project.date, locale)}
{project.role && !centerSubtitle && ( {project.role} )} {projectLink && centerSubtitle && ( {projectLink.label} )} {project.description && ( )} )})} ); }; export default ProjectSection;