import dynamic from 'next/dynamic'; import Image from 'next/image'; import { useCallback, useEffect, useState } from 'react'; import { useProductContext } from '@/contexts/ProductContext'; import odooApi from '@/core/api/odooApi'; import whatsappUrl from '@/core/utils/whatsappUrl'; import { useRouter } from 'next/router'; const Navbar = dynamic(() => import('../elements/Navbar/Navbar'), { ssr: false, loading: () =>
, }); const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, }); const BasicFooter = dynamic(() => import('../elements/Footer/BasicFooter'), { ssr: false, }); const BasicLayout = ({ children }) => { const [templateWA, setTemplateWA] = useState(null); const [payloadWA, setPayloadWa] = useState(null); const [urlPath, setUrlPath] = useState(null); const router = useRouter(); const { product } = useProductContext(); useEffect(() => { if ( router.pathname === '/shop/product/[slug]' || router.pathname === '/shop/product/variant/[slug]' ) { setPayloadWa({ name: product?.name, manufacture: product?.manufacture.name, url: process.env.NEXT_PUBLIC_SELF_HOST + router.asPath, }); setTemplateWA('product'); setUrlPath(router.asPath); } }, [product, router]); const recordActivity = useCallback(async () => { const recordedPath = [ '/shop/product/[slug]', '/shop/product/variant/[slug]', ]; if (!recordedPath.includes(router.pathname)) return; const ip = await odooApi('GET', '/api/ip-address'); const data = new URLSearchParams({ page_title: document.title, url: window.location.href, ip, }); fetch(`/api/user-activity?${data.toString()}`); }, [router.pathname]); useEffect(() => { recordActivity(); }, [recordActivity]); return ( <>