import { Fragment, useEffect, useState, useRef } from "@wordpress/element"; import { buildFontClasses, paginationDotType, useDeviceType } from "../../controls/controls"; import { Swiper, SwiperSlide } from "swiper/react"; import { Autoplay, EffectCoverflow, EffectCube, EffectFade, EffectFlip, FreeMode, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, } from "swiper/modules"; import { SwiperNavButton, SwiperPagination } from "../shared/templates/templates-parts/templates-parts"; import classNames from "classnames"; import TemplateOne from "../shared/templates/templateCards/templateOne"; import { priceLink, ProTopBar } from "../shared/helpFn"; import { blockPreviewPanelLink } from "../../controls/constants"; const Render = ({ attributes, posts, swiperKey = "", pageType = "frontend" }) => { const { postSliderTwoLayout, carouselAutoPlay, carouselAutoPlayDelay, carouselPaginationStyle, infiniteLoop, postSliderTwoSlideToScroll, carouselDirection, carouselPauseOnHover, carouselSpeed, postSliderTwoAnimationEffect, postSliderTwoMouseWheelControl, postSliderTwoFreeScrollMode, postSliderTwoTabKeyNavigation, // postSliderTwoNavArrow, postSliderTwoHeight, carouselArrowStyle, // postSliderTwoPaginationDot, dynamicClassNames, navArrowVisibilityOnHover, catTabCategoryPosition, contentHorizontalPosition, contentVerticalPosition, carouselNavArrow, carouselPaginationDot, blockName } = attributes; const deviceType = useDeviceType(); const swiperNevNextRef = useRef(null); const swiperNevPrevRef = useRef(null); const swiperDotsRef = useRef(null); const containerRef = useRef(null); const paginationDotStyle = paginationDotType(swiperDotsRef, carouselPaginationStyle); const postSliderSlidePerGroups = postSliderTwoSlideToScroll?.device?.[deviceType]; const cardHeightClass = classNames(buildFontClasses("height", postSliderTwoHeight)); const contentPosition = `sp-h-${contentHorizontalPosition} sp-v-${contentVerticalPosition}`; 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 ( <>
{posts?.length > 0 && ( {posts?.map((post, i) => { return ( setSelectedPostId(post?.post_id)} /> ); })} )} {carouselNavArrow && ( )} {carouselPaginationDot && carouselPaginationStyle !== "scrollbar" && ( )}
); }; export default Render;