/* eslint-disable react-hooks/exhaustive-deps */ import clsx from "clsx"; import { useEffect, useState } from "react"; import Project from "../types/Project"; import Select from "./ui/Select"; function ProjectSelect({ projects, onSelect, defaultProject, withAll, }: { projects: Project[]; onSelect: (project: Project | null) => void; defaultProject: T extends false ? Project : null; withAll?: T; }) { const [selectedProject, setSelectedProject] = useState( defaultProject ); useEffect(() => setSelectedProject(defaultProject), [defaultProject]); useEffect(() => onSelect(selectedProject), [selectedProject]); return ( <>
{withAll && (
setSelectedProject(null)} > All Projects
)} {projects.map((project) => (
setSelectedProject(project)} > {project.title}

{project.title}

))}