summaryrefslogtreecommitdiff
path: root/src/core/components/elements/Navbar
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/components/elements/Navbar')
-rw-r--r--src/core/components/elements/Navbar/NavbarDesktop.jsx34
-rw-r--r--src/core/components/elements/Navbar/NavbarMobile.jsx8
2 files changed, 37 insertions, 5 deletions
diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx
index 26edd5a4..ea4b03ae 100644
--- a/src/core/components/elements/Navbar/NavbarDesktop.jsx
+++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx
@@ -13,9 +13,13 @@ import Category from '@/lib/category/components/Category'
import { useEffect, useState } from 'react'
import useAuth from '@/core/hooks/useAuth'
import NavbarUserDropdown from './NavbarUserDropdown'
-import { getCart } from '@/core/utils/cart'
+import { getCountCart } from '@/core/utils/cart'
import TopBanner from './TopBanner'
import whatsappUrl from '@/core/utils/whatsappUrl'
+import { useRouter } from 'next/router'
+import { getAuth } from '@/core/utils/auth'
+import { createSlug, getIdFromSlug } from '@/core/utils/slug'
+import productApi from '@/lib/product/api/productApi'
const Search = dynamic(() => import('./Search'))
@@ -25,13 +29,37 @@ const NavbarDesktop = () => {
const [cartCount, setCartCount] = useState(0)
+ const [templateWA, setTemplateWA] = useState(null)
+ const [payloadWA, setPayloadWa] = useState(null)
+
+ const router = useRouter()
+
useEffect(() => {
const handleCartChange = () => {
- setCartCount(Object.keys(getCart()).length)
+ const cart = async () => {
+ const listCart = await getCountCart()
+ setCartCount(listCart)
+ }
+ cart()
}
handleCartChange()
window.addEventListener('localStorageChange', handleCartChange)
+ if (router.pathname === '/shop/product/[slug]') {
+ const authToken = getAuth().token
+
+ const { slug } = router.query
+ const getProduct = async () => {
+ let product = await productApi({ id: getIdFromSlug(slug), headers: { Token: authToken } })
+ setPayloadWa({
+ name: product[0]?.name,
+ manufacture: product[0]?.manufacture.name,
+ url: createSlug('/shop/product/', product[0]?.name, product[0]?.id, true)
+ })
+ }
+ getProduct()
+ setTemplateWA('product')
+ }
return () => {
window.removeEventListener('localStorageChange', handleCartChange)
@@ -92,7 +120,7 @@ const NavbarDesktop = () => {
Wishlist
</Link>
<a
- href={whatsappUrl()}
+ href={whatsappUrl(templateWA, payloadWA)}
target='_blank'
rel='noreferrer'
className='flex items-center gap-x-1 !text-gray_r-12/80'
diff --git a/src/core/components/elements/Navbar/NavbarMobile.jsx b/src/core/components/elements/Navbar/NavbarMobile.jsx
index b69e86e8..704e91b6 100644
--- a/src/core/components/elements/Navbar/NavbarMobile.jsx
+++ b/src/core/components/elements/Navbar/NavbarMobile.jsx
@@ -6,7 +6,7 @@ import useSidebar from '@/core/hooks/useSidebar'
import dynamic from 'next/dynamic'
import IndoteknikLogo from '@/images/logo.png'
import { useEffect, useState } from 'react'
-import { getCart } from '@/core/utils/cart'
+import { getCart, getCountCart } from '@/core/utils/cart'
import TopBanner from './TopBanner'
const Search = dynamic(() => import('./Search'))
@@ -18,7 +18,11 @@ const NavbarMobile = () => {
useEffect(() => {
const handleCartChange = () => {
- setCartCount(Object.keys(getCart()).length)
+ const cart = async () => {
+ const listCart = await getCountCart()
+ setCartCount(listCart)
+ }
+ cart()
}
handleCartChange()