"use client"; import { useEffect, useState } from "react"; // Define types for filters interface SelectedFilters { banks: string[]; features: string[]; salary: string; } interface FilterProps { selectedFilters: SelectedFilters; setSelectedFilters: React.Dispatch>; } const Filter: React.FC = ({ selectedFilters, setSelectedFilters }) => { const [banks, setBanks] = useState([]); const [features, setFeatures] = useState([]); useEffect(() => { fetch("/api/creditcards/filters") .then((res) => res.json()) .then((data) => { setBanks(data.banks || []); setFeatures(data.features || []); }) .catch((err) => console.error("Filter API Fetch Error:", err)); }, []); const handleCheckboxChange = (type: keyof SelectedFilters, value: string) => { setSelectedFilters((prevFilters) => { const newFilters = { ...prevFilters }; if (Array.isArray(newFilters[type])) { newFilters[type] = newFilters[type].includes(value) ? newFilters[type].filter((item) => item !== value) : [...newFilters[type], value]; } return newFilters; }); }; return (

Filters

{/* Salary Range Filter */} setSelectedFilters({ ...selectedFilters, salary: e.target.value })} /> {/* Bank Filters */}

Bank Name

{banks.map((bank) => ( ))} {/* Feature Filters */}

Feature Type

{features.map((feature) => ( ))}
); }; export default Filter;