From de3422dc076e11724d423f80c1005d5188ed4e3e Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 8 Aug 2024 10:44:07 +0700 Subject: add motion --- src/core/components/layouts/BasicLayout.jsx | 75 ++++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index a4f3a856..4d995a3a 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -1,12 +1,13 @@ import dynamic from 'next/dynamic'; import Image from 'next/image'; import { useRouter } from 'next/router'; -import { useEffect, useState } from 'react'; +import { useEffect, useState, useRef } from 'react'; import { useProductContext } from '@/contexts/ProductContext'; import odooApi from '@/core/api/odooApi'; import whatsappUrl from '@/core/utils/whatsappUrl'; import Navbar from '../elements/Navbar/Navbar'; +import { AnimatePresence, motion } from 'framer-motion'; const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, @@ -19,8 +20,10 @@ const BasicLayout = ({ children }) => { const [templateWA, setTemplateWA] = useState(null); const [payloadWA, setPayloadWa] = useState(null); const [urlPath, setUrlPath] = useState(null); + const [isVisible, setIsVisible] = useState(true); const router = useRouter(); + const whatsappRef = useRef(null); const { product } = useProductContext(); useEffect(() => { @@ -58,33 +61,81 @@ const BasicLayout = ({ children }) => { recordActivity(router.pathname); }, [router.pathname]); + useEffect(() => { + const handleMouseOut = (event) => { + if (event.clientY <= 0) { + setIsVisible(false); + } else { + setIsVisible(true); + } + }; + + window.addEventListener('mouseout', handleMouseOut); + + return () => { + window.removeEventListener('mouseout', handleMouseOut); + }; + }, []); + + const getWhatsappPosition = () => { + if (whatsappRef.current) { + const rect = whatsappRef.current.getBoundingClientRect(); + return { + x: rect.left + 80, + y: rect.top + 40, + width: rect.width, + height: rect.height, + }; + } + return { x: 0, y: 0, width: 0, height: 0 }; + }; + return ( <> + {!isVisible && ( + + + + )} {children} -
+ -- cgit v1.2.3 From 7e762fee7c9125ef2ce7e1cc0942ce8d1c1cb290 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 8 Aug 2024 15:47:07 +0700 Subject: back to original --- src/core/components/layouts/BasicLayout.jsx | 77 +++++------------------------ 1 file changed, 13 insertions(+), 64 deletions(-) (limited to 'src') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 4d995a3a..ba51022d 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -1,13 +1,12 @@ import dynamic from 'next/dynamic'; import Image from 'next/image'; import { useRouter } from 'next/router'; -import { useEffect, useState, useRef } from 'react'; +import { useEffect, useState } from 'react'; import { useProductContext } from '@/contexts/ProductContext'; import odooApi from '@/core/api/odooApi'; import whatsappUrl from '@/core/utils/whatsappUrl'; import Navbar from '../elements/Navbar/Navbar'; -import { AnimatePresence, motion } from 'framer-motion'; const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, @@ -20,10 +19,8 @@ const BasicLayout = ({ children }) => { const [templateWA, setTemplateWA] = useState(null); const [payloadWA, setPayloadWa] = useState(null); const [urlPath, setUrlPath] = useState(null); - const [isVisible, setIsVisible] = useState(true); const router = useRouter(); - const whatsappRef = useRef(null); const { product } = useProductContext(); useEffect(() => { @@ -61,81 +58,33 @@ const BasicLayout = ({ children }) => { recordActivity(router.pathname); }, [router.pathname]); - useEffect(() => { - const handleMouseOut = (event) => { - if (event.clientY <= 0) { - setIsVisible(false); - } else { - setIsVisible(true); - } - }; - - window.addEventListener('mouseout', handleMouseOut); - - return () => { - window.removeEventListener('mouseout', handleMouseOut); - }; - }, []); - - const getWhatsappPosition = () => { - if (whatsappRef.current) { - const rect = whatsappRef.current.getBoundingClientRect(); - return { - x: rect.left + 80, - y: rect.top + 40, - width: rect.width, - height: rect.height, - }; - } - return { x: 0, y: 0, width: 0, height: 0 }; - }; - return ( <> - {!isVisible && ( - - - - )} {children} -
+ @@ -144,4 +93,4 @@ const BasicLayout = ({ children }) => { ); }; -export default BasicLayout; +export default BasicLayout; \ No newline at end of file -- cgit v1.2.3