"use client"; import React, { useMemo, useState } from "react"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import ProjectCard from "./ProjectCard"; import type { Project } from "@/types/project"; interface ProjectsListProps { projects: Project[]; categories: string[]; technologies: string[]; } export default function ProjectsList({ projects, categories, technologies, }: ProjectsListProps) { const [search, setSearch] = useState(""); const [category, setCategory] = useState("all"); const [technology, setTechnology] = useState("all"); const filtered = useMemo(() => { return projects.filter((project) => { const matchesSearch = search === "" || project.title.toLowerCase().includes(search.toLowerCase()) || project.shortDescription.toLowerCase().includes(search.toLowerCase()) || project.technologies.some((t) => t.toLowerCase().includes(search.toLowerCase()), ); const matchesCategory = category === "all" || project.category === category; const matchesTechnology = technology === "all" || project.technologies.includes(technology); return matchesSearch && matchesCategory && matchesTechnology; }); }, [projects, search, category, technology]); return (