From 3c1258e0687063e05e67982c618f00154e234605 Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Fri, 20 Jun 2025 09:12:32 +0700
Subject: <hafid> add top banner mobile

---
 .../components/elements/Navbar/TopBannerMobile.jsx | 72 ++++++++++++++++++++++
 1 file changed, 72 insertions(+)
 create mode 100644 src/core/components/elements/Navbar/TopBannerMobile.jsx

(limited to 'src/core/components/elements/Navbar/TopBannerMobile.jsx')

diff --git a/src/core/components/elements/Navbar/TopBannerMobile.jsx b/src/core/components/elements/Navbar/TopBannerMobile.jsx
new file mode 100644
index 00000000..c3f42f85
--- /dev/null
+++ b/src/core/components/elements/Navbar/TopBannerMobile.jsx
@@ -0,0 +1,72 @@
+import Image from 'next/image';
+import { useQuery } from 'react-query';
+import useDevice from '@/core/hooks/useDevice';
+import odooApi from '@/core/api/odooApi';
+import SmoothRender from '~/components/ui/smooth-render';
+import Link from '../Link/Link';
+import { background } from '@chakra-ui/react';
+import { useEffect, useState } from 'react';
+
+const TopBannerMobile = ({ onLoad = () => {} }) => {
+  const [topBannerMobile, setTopBannerMobile] = useState([]);
+  const { isDesktop, isMobile } = useDevice();
+
+  useEffect(() => {
+    const fetchData = async () => {
+      const res = await fetch(`/api/hero-banner?type=top-banner-mobile`);
+      const { data } = await res.json();
+      if (data) {
+        setTopBannerMobile(data);
+      }
+    };
+
+    fetchData();
+  }, []);
+
+  // const topBannerMobile = useQuery({
+  //   queryKey: 'topBannerMobile',
+  //   queryFn: async () => await odooApi('GET', '/api/v1/banner?type=top-banner'),
+  //   refetchOnWindowFocus: false,
+  // });
+
+  // const backgroundColor = topBannerMobile.data?.[0]?.backgroundColor || 'transparent';
+  const hasData = topBannerMobile?.length > 0;
+  const data = topBannerMobile?.[0] || null;
+
+  useEffect(() => {
+    if (hasData) {
+      onLoad();
+    }
+  }, [hasData, onLoad]);
+
+  
+  if (!hasData || !data?.image) {
+    return null;
+  }
+  return (
+    <SmoothRender
+      isLoaded={hasData}
+      duration='700ms'
+      delay='300ms'
+      className='h-auto'
+    >
+      <Link
+        href={data?.url}
+        aria-label='panduan pick up barang'
+        className='block w-full'
+      >
+        <Image
+          src={data?.image}
+          alt='Panduan Pick Up Barang'
+          width={0}
+          height={0}
+          sizes='100vw'
+          className='w-full h-auto'
+          priority
+        />
+      </Link>
+    </SmoothRender>
+  );
+};
+
+export default TopBannerMobile;
-- 
cgit v1.2.3

