import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import CloseIcon from "../icons/close.svg"; const Filter = ({ isActive, closeFilter, defaultRoute, defaultPriceFrom, defaultPriceTo, defaultCategory, defaultBrand, searchResults }) => { const router = useRouter(); const [priceFrom, setPriceFrom] = useState(defaultPriceFrom); const [priceTo, setPriceTo] = useState(defaultPriceTo); const [selectedCategory, setSelectedCategory] = useState(defaultCategory); const [selectedBrand, setSelectedBrand] = useState(defaultBrand); const [categories, setCategories] = useState([]); const [brands, setBrands] = useState([]); const filterRoute = () => { let filterRoute = defaultRoute; if (selectedBrand) filterRoute += `&brand=${selectedBrand}`; if (selectedCategory) filterRoute += `&category=${selectedCategory}`; if (priceFrom > 0) filterRoute += `&price_from=${priceFrom}`; if (priceTo > 0) filterRoute += `&price_to=${priceTo}`; return filterRoute; } useEffect(() => { const filterCategory = searchResults.facet_counts.facet_fields.category_name_str.filter((category, index) => { if (index % 2 == 0) { const productCountInCategory = searchResults.facet_counts.facet_fields.category_name_str[index + 1]; if (productCountInCategory > 0) return category; } }); setCategories(filterCategory); const filterBrand = searchResults.facet_counts.facet_fields.brand_str.filter((brand, index) => { if (index % 2 == 0) { const productCountInBrand = searchResults.facet_counts.facet_fields.brand_str[index + 1]; if (productCountInBrand > 0) return brand; } }); setBrands(filterBrand); }, [searchResults]); const submit = (e) => { e.preventDefault(); closeFilter(); router.push(filterRoute(), undefined, { scroll: false }); } const reset = () => { setSelectedBrand(''); setSelectedCategory(''); setPriceFrom(0); setPriceTo(0); } return (

Filter Produk

setPriceFrom(e.target.value)}/> setPriceTo(e.target.value)}/>
{selectedBrand || selectedCategory || priceFrom > 0 || priceTo > 0 ? ( ) : ''}
) }; export default Filter;