summaryrefslogtreecommitdiff
path: root/src/core/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/components')
-rw-r--r--src/core/components/layouts/BasicLayout.jsx39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx
index b6e2c59f..fa41a8ed 100644
--- a/src/core/components/layouts/BasicLayout.jsx
+++ b/src/core/components/layouts/BasicLayout.jsx
@@ -1,8 +1,9 @@
import dynamic from 'next/dynamic';
import Image from 'next/image';
-import { useEffect, useState } from 'react';
+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';
@@ -41,20 +42,28 @@ const BasicLayout = ({ children }) => {
}
}, [product, router]);
- // useEffect(() => {
- // const getIP = async () => {
- // const ip = await odooApi('GET', '/api/ip-address');
- // const data = {
- // page_title: document.title,
- // url: window.location.href,
- // ip: ip,
- // };
- // axios.get(
- // `/api/user-activity?page_title=${data.page_title}&url=${data.url}&ip=${data.ip}`
- // );
- // };
- // getIP();
- // }, []);
+ 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 (
<>
<Navbar />