import React from "react"; import { Link } from "react-router-dom"; import { EllipsisVerticalIcon } from "@heroicons/react/24/solid"; import { Project } from "../../entities/Project"; import { useTranslation } from "react-i18next"; interface ProjectItemProps { project: Project; viewMode: "cards" | "list"; color: string; getCompletionPercentage: () => number; activeDropdown: number | null; setActiveDropdown: React.Dispatch>; handleEditProject: (project: Project) => void; setProjectToDelete: React.Dispatch>; setIsConfirmDialogOpen: React.Dispatch>; } const getProjectInitials = (name: string) => { const words = name .trim() .split(" ") .filter((word) => word.length > 0); if (words.length === 1) { return name.toUpperCase(); } return words.map((word) => word[0].toUpperCase()).join(""); }; const ProjectItem: React.FC = ({ project, viewMode, color, getCompletionPercentage, activeDropdown, setActiveDropdown, handleEditProject, setProjectToDelete, setIsConfirmDialogOpen, }) => { const { t } = useTranslation(); return (
{viewMode === "cards" && (
{project.image_url ? ( {project.name} ) : ( {getProjectInitials(project.name)} )}
)} {viewMode === "list" && project.image_url && (
{project.name}
)}
{viewMode === "list" && !project.image_url && (
)} {project.name}
{activeDropdown === project.id && (
)}
{viewMode === "cards" && (
)}
); }; export default ProjectItem;