import { Fragment, useEffect, useState } from "@wordpress/element"; import TemplateOne from "../shared/templates/templateCards/templateOne"; import { breakpoint, inArray } from "../../controls/controls"; const LoopContent = ({ posts, attributes, bottomStyle = false, layoutStyle = "grid-six-layout-four", containerVAlign = false, horizontalAlign = false, Masonry = false, ResponsiveMasonry = Fragment, containerRef, }) => { const { postGridLayout, contentVerticalPosition, gridSixColumns, masonryGap } = attributes; const deviceType = breakpoint(); const largeItemsNumber = "Mobile" !== deviceType ? (inArray(["grid-six-layout-one", "grid-six-layout-two"], postGridLayout) ? 1 : 2) : 0; const masonryGapCss = `${masonryGap?.device?.Desktop}${masonryGap?.unit?.Desktop}`; const columnsBreakPoints = Masonry ? { columnsCountBreakPoints: { 350: gridSixColumns?.device?.Mobile, 750: gridSixColumns?.device?.Tablet, 900: gridSixColumns?.device?.Desktop, }, } : {}; const gutter = Masonry ? { gutter: masonryGapCss, } : {}; const [selectedPostId, setSelectedPostId] = useState(null); useEffect(() => { const handleClickOutside = (event) => { if (containerRef.current && !containerRef.current.contains(event.target)) { setSelectedPostId(null); } const targetPostId = parseInt(event.target.closest(".sp-smart-post-card-image")?.dataset?.post_id); if (targetPostId && targetPostId !== selectedPostId) { setSelectedPostId(null); } }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, [selectedPostId]); return ( <> {Masonry && ( {posts ?.slice(bottomStyle ? largeItemsNumber : 0, bottomStyle ? posts?.length : largeItemsNumber) ?.map( (post) => ( // postGridLayout === layoutStyle ? ( setSelectedPostId(post?.post_id)} /> ) // ) : ( // setSelectedPostId( post?.post_id ) } // /> // ) )} )} {!Masonry && posts?.slice(bottomStyle ? largeItemsNumber : 0, bottomStyle ? posts?.length : largeItemsNumber)?.map( (post) => ( // postGridLayout === layoutStyle ? ( setSelectedPostId(post?.post_id)} /> ) // ) : ( // setSelectedPostId( post?.post_id ) } // /> // ) )} ); }; export default LoopContent;