From 949e654bec249177618c3efc1b63c50f174ea0ae Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 9 Aug 2024 17:27:04 +0700 Subject: update highlight button --- src/core/components/layouts/BasicLayout.jsx | 86 +++++++++++++--------- src/core/components/layouts/BasicLayout.module.css | 6 +- tailwind.config.js | 14 +++- 3 files changed, 66 insertions(+), 40 deletions(-) diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 62c74e3c..c4674344 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -22,6 +22,7 @@ const BasicLayout = ({ children }) => { const [urlPath, setUrlPath] = useState(null); const [highlight, setHighlight] = useState(false); const [buttonPosition, setButtonPosition] = useState(null); + const [wobble, setWobble] = useState(false); const router = useRouter(); const buttonRef = useRef(null); @@ -47,9 +48,8 @@ const BasicLayout = ({ children }) => { useEffect(() => { const handleMouseOut = (event) => { const rect = buttonRef.current.getBoundingClientRect(); - console.log("rect",rect) if (event.clientY <= 0) { - console.log("ini pindah") + setButtonPosition(rect) setHighlight(true); } else { setHighlight(false); @@ -63,6 +63,14 @@ const BasicLayout = ({ children }) => { }; }, []); + useEffect(() => { + if (highlight) { + // Set wobble animation after overlay highlight animation completes + const timer = setTimeout(() => setWobble(true), 1000); // Adjust timing if needed + return () => clearTimeout(timer); + } + }, [highlight]); + const recordActivity = async (pathname) => { const ONLY_ON_PATH = false; const recordedPath = []; @@ -84,44 +92,50 @@ const BasicLayout = ({ children }) => { return ( <> + {highlight && buttonPosition && ( +
setHighlight(false)} + /> + )} {children} - {highlight && buttonPosition && ( -
setHighlight(false)} - /> - )} diff --git a/src/core/components/layouts/BasicLayout.module.css b/src/core/components/layouts/BasicLayout.module.css index b89aca9f..4945c420 100644 --- a/src/core/components/layouts/BasicLayout.module.css +++ b/src/core/components/layouts/BasicLayout.module.css @@ -1,11 +1,11 @@ .overlay-highlight { - @apply fixed top-0 left-0 w-full h-full bg-[#4FB84A]/50 z-[900]; - animation: closeOverlay 10s forwards; + @apply fixed top-0 left-0 w-full h-full bg-[#4FB84A]/30 z-[900]; + animation: closeOverlay 1s forwards; } @keyframes closeOverlay { from { - clip-path: circle(100%); + clip-path: circle(100% at 50% 50%); } to { clip-path: circle(var(--button-radius) at var(--button-x) var(--button-y)); diff --git a/tailwind.config.js b/tailwind.config.js index f1c740d5..799fdb02 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -116,7 +116,19 @@ module.exports = { 800: '#760A26', 900: '#610625' } - } + }, + keyframes: { + wobble: { + '0%': { transform: 'translateY(0)' }, + '25%': { transform: 'translateY(-10px)' }, + '50%': { transform: 'translateY(0)' }, + '75%': { transform: 'translateY(10px)' }, + '100%': { transform: 'translateY(0)' }, + }, + }, + animation: { + wobble: 'wobble 0.5s ease forwards', + }, } }, plugins: [require('@tailwindcss/line-clamp'), require('@tailwindcss/typography')] -- cgit v1.2.3