import React, { useEffect, useState } from "react"; import { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, } from "@/components/ui/carousel"; import { allItemApi } from "@/utils/api"; import ProductCard from "@/components/Common/ProductCard"; import { useSelector } from "react-redux"; import { getIsRtl } from "@/redux/reducer/languageSlice"; import { t } from "@/utils"; import { getCityData, getKilometerRange } from "@/redux/reducer/locationSlice"; const SimilarProducts = ({ productDetails }) => { const [similarData, setSimilarData] = useState([]); const isRTL = useSelector(getIsRtl); const location = useSelector(getCityData); const KmRange = useSelector(getKilometerRange); const fetchSimilarData = async (cateID) => { try { const response = await allItemApi.getItems({ category_id: cateID, ...(location?.lat && location?.long && { latitude: location?.lat, longitude: location?.long, radius: KmRange, }), }); const responseData = response?.data; if (responseData) { const { data } = responseData; const filteredData = data?.data?.filter( (item) => item.id !== productDetails?.id ); setSimilarData(filteredData || []); } else { console.error("Invalid response:", response); } } catch (error) { console.error("Error:", error); } }; useEffect(() => { if (productDetails?.category_id) { fetchSimilarData(productDetails?.category_id); } }, [productDetails?.category_id]); if (similarData && similarData.length === 0) { return null; } const handleLikeAllData = (id) => { const updatedItems = similarData.map((item) => { if (item.id === id) { return { ...item, is_liked: !item.is_liked }; } return item; }); setSimilarData(updatedItems); }; return (

{t("relatedAds")}

{similarData?.map((item) => ( ))} {similarData?.length > 3 && ( <> )}
); }; export default SimilarProducts;