"use client"; import React, { useEffect, useState } from "react"; import Title from "../title"; import Text from "../text"; import { Asphalt, Ekskavator, Forklift, Kran, Truck } from "@/assets"; import Image from "next/image"; import type { productFilterTypes, ProductTypes } from "@/types"; import { allProducts, cranes, excavators, forklift, road_repairs, trucks } from "@/data"; import ProductCard from "../cards/productCard"; const productFilterTypesMainPage: productFilterTypes[] = [ { name: "trucks", image: Truck }, { name: "cranes", image: Kran }, { name: "forklift-trucks", image: Ekskavator }, { name: "excavators", image: Forklift }, { name: "road-repairs", image: Asphalt }, { name: "all", image: '' }, ]; export default function Products() { const [productFilter, setProductFilter] = useState(null); const [cars,setCars] = useState(allProducts) // execute filetr function useEffect(()=>{ if(productFilter === 'trucks'){ setCars(trucks); }else if(productFilter === 'cranes'){ setCars(cranes); }else if(productFilter === 'forklift-trucks'){ setCars(forklift); } else if(productFilter === 'excavators'){ setCars(excavators); }else if(productFilter === 'road-repairs'){ setCars(road_repairs) }else { setCars(allProducts) } },[productFilter]) return (
{/* title part */}
</div> {/* product filters */} <div className="flex flex-wrap gap-1 gap-y-4 items-center justify-center mb-10 "> {productFilterTypesMainPage.map((item, index) => ( <button key={index} onClick={() => setProductFilter(item.name)} className={`${ productFilter === item.name ? "bg-secondary" : "" } flex items-center gap-2 h-[58px] hover:bg-secondary border-gray-300 hover:border-secondary border-[1px] px-7 text-2xl rounded-tr-full rounded-bl-full `} > <Text txt={item.name} /> {item.image && (<Image src={item.image} alt="Truck images" width={50} height={50} className="object-cover" />)} </button> ))} </div> {/* products */} <div className="px-4 grid gap-5 grid-cols-1 place-content-center min-[500px]:grid-cols-2 min-lg:grid-cols-4 min-[1210px]:grid-cols-4"> {cars.map((item: ProductTypes, index: number) => ( <div key={index} > <ProductCard data={item} /> </div> ))} </div> </div> ); }