'use client'; import { useEffect, useState } from "react"; // Types interface SelectedFilters { banks: string[]; features: string[]; salary: string; } interface Bank { code: string; description: string; } interface FilterProps { selectedFilters: SelectedFilters; setSelectedFilters: React.Dispatch>; } const Filter: React.FC = ({ selectedFilters, setSelectedFilters }) => { const [banksList, setBanksList] = useState([]); const [features, setFeatures] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { const fetchFilters = async () => { try { const res = await fetch("/api/cardlists/filters"); const data = await res.json(); setFeatures(data.features || []); setBanksList(data.banks || []); } catch (err) { console.error("Filter API Fetch Error:", err); } finally { setLoading(false); } }; fetchFilters(); }, []); const handleCheckboxChange = (type: keyof SelectedFilters, value: string) => { setSelectedFilters((prevFilters) => { if (type === "salary") { return { ...prevFilters, salary: value }; } const currentArray = prevFilters[type] as string[]; return { ...prevFilters, [type]: currentArray.includes(value) ? currentArray.filter((item) => item !== value) : [...currentArray, value], }; }); }; return (

Filters

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

Bank Name

{loading ? (

Loading banks...

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

Feature Type

{loading ? (

Loading features...

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