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 (
<>