import { useRouter } from 'next/router'; import { useEffect, useState } from 'react'; import Image from 'next/image'; import Link from 'next/link'; import { Modal } from '~/components/ui/modal'; import { getAuth } from '~/libs/auth'; import dynamic from 'next/dynamic'; const PagePopupInformation = () => { const router = useRouter(); const isHomePage = router.pathname === '/'; // Updated to match your URL structure with /shop/product/ const isProductDetail = router.pathname.includes('/shop/product/'); const auth = getAuth(); const [active, setActive] = useState(false); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); const [hasClosedPopup, setHasClosedPopup] = useState(false); useEffect(() => { // Check if user has closed the popup in this session const popupClosed = sessionStorage.getItem('popupClosed'); if (popupClosed) { setHasClosedPopup(true); } }, []); useEffect(() => { const getData = async () => { const res = await fetch(`/api/hero-banner?type=popup-banner`); const { data } = await res.json(); if (data) { setData(data); } setLoading(false); }; // Show popup if user is on homepage OR product detail page AND not authenticated AND hasn't closed popup if ((isHomePage || isProductDetail) && !auth && !hasClosedPopup) { setActive(true); getData(); } }, [isHomePage, isProductDetail, auth, hasClosedPopup]); const handleClose = () => { setActive(false); // Set session storage to remember user closed the popup sessionStorage.setItem('popupClosed', 'true'); }; return (
{data && !loading && (
{data[0]?.name}
)}
); }; export default PagePopupInformation;