/* eslint-disable import/no-unresolved */ import { useEffect, useRef, useState } from "@wordpress/element"; import { Swiper, SwiperSlide } from "swiper/react"; import { breakpoint, buildFontClasses, inArray, paginationDotType, useDeviceType } from "../../controls/controls"; import { Autoplay, EffectCoverflow, EffectCube, EffectFade, EffectFlip, FreeMode, Grid, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Thumbs, } from "swiper/modules"; import TemplateOne from "../shared/templates/templateCards/templateOne"; import { SwiperNavButton, SwiperPagination } from "../shared/templates/templates-parts/templates-parts"; import "swiper/css"; import "swiper/css/navigation"; import "swiper/css/pagination"; import "swiper/css/free-mode"; import "swiper/css/autoplay"; import "swiper/css/effect-flip"; import "swiper/css/thumbs"; import classNames from "classnames"; import ThumbsTemplate from "../shared/templates/templateCards/thumbsTemplate"; const Render = ({ attributes, posts, pageType = "frontend" }) => { const { dynamicClassNames, carouselPauseOnHover, carouselArrowStyle, // postThumbnailNavigationArrow, carouselPaginationStyle, carouselAutoPlay, carouselAutoPlayDelay, carouselDirection, carouselSpeed, postThumbnailAnimationEffect, postThumbnailTabKeyNavigation, postThumbnailMouseWheelControl, postThumbnailAdaptiveHeight, postThumbnailFreeScrollMode, postThumbnailHeight, // postThumbnailPaginationDot, thumbnailSliderLayout, postThumbnailSlideToScroll, contentVerticalPosition, postThumbnailGap, postThumbnailItemsPerSlide, postThumbnailPosition, currentScreen, postThumbnailLoop, navArrowVisibilityOnHover, catTabCategoryPosition, uniqueId, carouselNavArrow, carouselPaginationDot, } = attributes; const [thumbsSwiper, setThumbsSwiper] = useState(null); const swiperDotsRef = useRef(null); const swiperNevNextRef = useRef(null); const swiperNevPrevRef = useRef(null); const containerRef = useRef(null); const deviceType = useDeviceType(); const thumbnailsSlidePerGroups = postThumbnailSlideToScroll?.device?.[deviceType]; const paginationDotStyle = paginationDotType(swiperDotsRef, carouselPaginationStyle, uniqueId); const bgPosition = "center"; const backgroundSize = "cover"; const { Desktop: desktopGap } = postThumbnailGap.device; // const { Desktop: desktopScroll, Tablet: tabletScroll, Mobile: mobileScroll } = postThumbnailSlideToScroll.device; const cardHeightClass = classNames(buildFontClasses("height", postThumbnailHeight)); const thumbnailItemsPerSlide = postThumbnailItemsPerSlide.device[breakpoint()]; const thumbnailsContentItem = ["thumbnail-slider-layout-three", "thumbnail-slider-layout-four"].includes( thumbnailSliderLayout ) ? ["image", "taxonomy", "title"] : ["image"]; const [selectedPostId, setSelectedPostId] = useState(null); useEffect(() => { const handleClickOutside = (event) => { if (containerRef.current && !containerRef.current.contains(event.target)) { setSelectedPostId(null); } }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); return (