From eb46cfeca8da8ea2b40e5576b3789f179d5aff56 Mon Sep 17 00:00:00 2001 From: trisusilo48 Date: Tue, 6 Aug 2024 15:13:31 +0700 Subject: CR no telpon --- src/core/components/elements/Footer/BasicFooter.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/components/elements/Footer/BasicFooter.jsx b/src/core/components/elements/Footer/BasicFooter.jsx index 6129143d..4beea604 100644 --- a/src/core/components/elements/Footer/BasicFooter.jsx +++ b/src/core/components/elements/Footer/BasicFooter.jsx @@ -259,7 +259,7 @@ const InformationCenter = () => (
  • - (021) 2933-8828 / 29 + (021) 2933-8828
  • -- cgit v1.2.3 From f0558477dd96de88baea95415376ddd7b20050ae Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 8 Aug 2024 08:24:58 +0700 Subject: merge image promotion from all promo --- .../components/elements/Navbar/NavbarDesktop.jsx | 76 ++++++++++++++++++---- src/core/components/elements/Navbar/TopBanner.jsx | 9 ++- 2 files changed, 72 insertions(+), 13 deletions(-) (limited to 'src/core') diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx index 7d9e4264..2ddf5efe 100644 --- a/src/core/components/elements/Navbar/NavbarDesktop.jsx +++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx @@ -10,11 +10,12 @@ import { ChevronDownIcon, DocumentCheckIcon, HeartIcon, + ArrowUpRightIcon, } from '@heroicons/react/24/outline'; import dynamic from 'next/dynamic'; import Image from 'next/image'; import { useRouter } from 'next/router'; -import { useEffect, useState } from 'react'; +import { useCallback, useEffect, useState } from 'react'; import DesktopView from '../../views/DesktopView'; import Link from '../Link/Link'; import NavbarUserDropdown from './NavbarUserDropdown'; @@ -47,6 +48,46 @@ const NavbarDesktop = () => { const { product } = useProductContext(); const { isOpen, onOpen, onClose } = useDisclosure(); + const [showPopup, setShowPopup] = useState(false); + const [isTop, setIsTop] = useState(true); + + const handleTopBannerLoad = useCallback(() => { + const showTimer = setTimeout(() => { + setShowPopup(true); + }, 500); + + const hideTimer = setTimeout(() => { + // setShowPopup(false); + }, 9500); + + return () => { + clearTimeout(showTimer); + clearTimeout(hideTimer); + }; + }, []); + + useEffect(() => { + const handleScroll = () => { + setIsTop(window.scrollY < 100); + }; + + window.addEventListener('scroll', handleScroll); + return () => { + window.removeEventListener('scroll', handleScroll); + }; + }, []); + + useEffect(() => { + const handleScroll = () => { + setIsTop(window.scrollY < 100); + }; + + window.addEventListener('scroll', handleScroll); + return () => { + window.removeEventListener('scroll', handleScroll); + }; + }, []); + useEffect(() => { if (router.pathname === '/shop/product/[slug]') { setPayloadWa({ @@ -79,7 +120,7 @@ const NavbarDesktop = () => { return ( - +
    @@ -204,6 +245,7 @@ const NavbarDesktop = () => {
    + { target="_blank" rel="noreferrer" > -

    Semua Promo

    - {/*
    - promo + penawaran terbatas -
    */} +
    + )} +

    Semua Promo

    - + {/* {showPopup && router.pathname === '/' && ( +
    +

    + Penawaran Terbatas +

    +
    + )} */} + { +const TopBanner = ({ onLoad }) => { const topBanner = useQuery({ queryKey: 'topBanner', queryFn: async () => await odooApi('GET', '/api/v1/banner?type=top-banner'), @@ -16,6 +17,12 @@ const TopBanner = () => { const hasData = topBanner.data?.length > 0; const data = topBanner.data?.[0] || null; + useEffect(() => { + if (hasData) { + onLoad(); + } + }, [hasData, onLoad]); + return ( Date: Fri, 9 Aug 2024 14:29:43 +0700 Subject: add highligth button whatsapp --- src/core/components/layouts/BasicLayout.jsx | 38 +++++++++++++++++++++- src/core/components/layouts/BasicLayout.module.css | 13 ++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/core/components/layouts/BasicLayout.module.css (limited to 'src/core') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index a4f3a856..62c74e3c 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 styles from './BasicLayout.module.css'; // Import modul CSS const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, @@ -19,10 +20,14 @@ const BasicLayout = ({ children }) => { const [templateWA, setTemplateWA] = useState(null); const [payloadWA, setPayloadWa] = useState(null); const [urlPath, setUrlPath] = useState(null); + const [highlight, setHighlight] = useState(false); + const [buttonPosition, setButtonPosition] = useState(null); const router = useRouter(); + const buttonRef = useRef(null); const { product } = useProductContext(); + useEffect(() => { if ( router.pathname === '/shop/product/[slug]' || @@ -39,6 +44,25 @@ const BasicLayout = ({ children }) => { } }, [product, router]); + useEffect(() => { + const handleMouseOut = (event) => { + const rect = buttonRef.current.getBoundingClientRect(); + console.log("rect",rect) + if (event.clientY <= 0) { + console.log("ini pindah") + setHighlight(true); + } else { + setHighlight(false); + } + }; + + window.addEventListener('mouseout', handleMouseOut); + + return () => { + window.removeEventListener('mouseout', handleMouseOut); + }; + }, []); + const recordActivity = async (pathname) => { const ONLY_ON_PATH = false; const recordedPath = []; @@ -63,12 +87,24 @@ const BasicLayout = ({ children }) => { {children} + {highlight && buttonPosition && ( +
    setHighlight(false)} + /> + )}
    Date: Fri, 9 Aug 2024 16:58:48 +0700 Subject: update higlight button whatsapp --- src/core/components/layouts/BasicLayout.jsx | 88 +++++++++++++--------- src/core/components/layouts/BasicLayout.module.css | 6 +- 2 files changed, 54 insertions(+), 40 deletions(-) (limited to 'src/core') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 62c74e3c..99968ca0 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -7,7 +7,7 @@ import { useProductContext } from '@/contexts/ProductContext'; import odooApi from '@/core/api/odooApi'; import whatsappUrl from '@/core/utils/whatsappUrl'; import Navbar from '../elements/Navbar/Navbar'; -import styles from './BasicLayout.module.css'; // Import modul CSS +import styles from './BasicLayout.module.css'; // Import modul CSS jika perlu const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, @@ -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)); -- cgit v1.2.3 From 4501271964f8084522967685e3752868779c5ca0 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 9 Aug 2024 17:11:17 +0700 Subject: Revert " update higlight button whatsapp" This reverts commit b4b36c45de25305f43ee83441f13a75c48b07994. --- src/core/components/layouts/BasicLayout.jsx | 88 +++++++++------------- src/core/components/layouts/BasicLayout.module.css | 6 +- 2 files changed, 40 insertions(+), 54 deletions(-) (limited to 'src/core') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 99968ca0..62c74e3c 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -7,7 +7,7 @@ import { useProductContext } from '@/contexts/ProductContext'; import odooApi from '@/core/api/odooApi'; import whatsappUrl from '@/core/utils/whatsappUrl'; import Navbar from '../elements/Navbar/Navbar'; -import styles from './BasicLayout.module.css'; // Import modul CSS jika perlu +import styles from './BasicLayout.module.css'; // Import modul CSS const AnimationLayout = dynamic(() => import('./AnimationLayout'), { ssr: false, @@ -22,7 +22,6 @@ 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); @@ -48,8 +47,9 @@ const BasicLayout = ({ children }) => { useEffect(() => { const handleMouseOut = (event) => { const rect = buttonRef.current.getBoundingClientRect(); + console.log("rect",rect) if (event.clientY <= 0) { - setButtonPosition(rect) + console.log("ini pindah") setHighlight(true); } else { setHighlight(false); @@ -63,14 +63,6 @@ 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 = []; @@ -92,50 +84,44 @@ 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 4945c420..b89aca9f 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]/30 z-[900]; - animation: closeOverlay 1s forwards; + @apply fixed top-0 left-0 w-full h-full bg-[#4FB84A]/50 z-[900]; + animation: closeOverlay 10s forwards; } @keyframes closeOverlay { from { - clip-path: circle(100% at 50% 50%); + clip-path: circle(100%); } to { clip-path: circle(var(--button-radius) at var(--button-x) var(--button-y)); -- cgit v1.2.3 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 +- 2 files changed, 53 insertions(+), 39 deletions(-) (limited to 'src/core') 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)); -- cgit v1.2.3 From 0a889a2acb147ffe3fe0ad1ca205683c7bf3fe82 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 13 Aug 2024 09:12:51 +0700 Subject: add tracking order to footer --- src/core/components/elements/Footer/BasicFooter.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/components/elements/Footer/BasicFooter.jsx b/src/core/components/elements/Footer/BasicFooter.jsx index 4beea604..8f024d86 100644 --- a/src/core/components/elements/Footer/BasicFooter.jsx +++ b/src/core/components/elements/Footer/BasicFooter.jsx @@ -175,7 +175,7 @@ const CustomerGuide = () => (
    Bantuan & Panduan
      -
    • +
    • Metode Pembayaran @@ -210,6 +210,11 @@ const CustomerGuide = () => ( Panduan Pick Up Service
    • +
    • + + Tracking Order + +
    ); -- cgit v1.2.3 From 16db179d5bb5ebd3ce946fb6e682539ffc8f728e Mon Sep 17 00:00:00 2001 From: Imanuel Marinao Date: Tue, 20 Aug 2024 20:40:32 +0700 Subject: update avoid error --- src/core/components/elements/Navbar/TopBanner.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/components/elements/Navbar/TopBanner.jsx b/src/core/components/elements/Navbar/TopBanner.jsx index 5ea8f635..f438ae67 100644 --- a/src/core/components/elements/Navbar/TopBanner.jsx +++ b/src/core/components/elements/Navbar/TopBanner.jsx @@ -6,7 +6,7 @@ import Link from '../Link/Link'; import { background } from '@chakra-ui/react'; import { useEffect } from 'react'; -const TopBanner = ({ onLoad }) => { +const TopBanner = ({ onLoad = () => {} }) => { const { isDesktop, isMobile } = useDevice() const topBanner = useQuery({ queryKey: 'topBanner', -- cgit v1.2.3 From e9f3435ceb5d85e4926f26c3a893b96edb898918 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Sat, 24 Aug 2024 09:29:31 +0700 Subject: update ready stock search --- src/core/components/elements/Navbar/NavbarDesktop.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx index 2ddf5efe..6c308f11 100644 --- a/src/core/components/elements/Navbar/NavbarDesktop.jsx +++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx @@ -291,7 +291,7 @@ const NavbarDesktop = () => {