diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/components/layouts/BasicLayout.jsx | 15 | ||||
| -rw-r--r-- | src/pages/_app.jsx | 4 | ||||
| -rw-r--r-- | src/pages/api/user-activity.js | 16 |
3 files changed, 33 insertions, 2 deletions
diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 04b189f9..70482e12 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -2,11 +2,26 @@ import dynamic from 'next/dynamic' import BasicFooter from '../elements/Footer/BasicFooter' import Image from 'next/image' import whatsappUrl from '@/core/utils/whatsappUrl' +import { useEffect, useState } from 'react' +import axios from 'axios' +import odooApi from '@/core/api/odooApi' const Navbar = dynamic(() => import('../elements/Navbar/Navbar')) const AnimationLayout = dynamic(() => import('./AnimationLayout')) const BasicLayout = ({ children }) => { + 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() + }, []) return ( <> <Navbar /> diff --git a/src/pages/_app.jsx b/src/pages/_app.jsx index a8d18917..4c4fed89 100644 --- a/src/pages/_app.jsx +++ b/src/pages/_app.jsx @@ -53,9 +53,9 @@ function MyApp({ Component, pageProps }) { <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} - exit={{ opacity: 0, transition: { delay: 0.05 } }} + exit={{ opacity: 0 }} transition={{ - duration: 0.15 + duration: 0.1 }} className='fixed w-screen h-screen z-[500] bg-white flex justify-center items-center' > diff --git a/src/pages/api/user-activity.js b/src/pages/api/user-activity.js new file mode 100644 index 00000000..04daa9a6 --- /dev/null +++ b/src/pages/api/user-activity.js @@ -0,0 +1,16 @@ +import odooApi from "@/core/api/odooApi"; + +export default async function handler(req, res) { + res.setHeader('Cache-Control', 'no-cache'); + const data = { + 'page_title' : req.query.page_title, + 'url' : req.query.url, + 'ip_address' : req.query.ip, + } + + const sendData = await odooApi('POST', '/api/v1/activity', data) + + // Kirim respons ke klien + res.status(200).json({ message: 'OK' }); + } +
\ No newline at end of file |
