summaryrefslogtreecommitdiff
path: root/src/core/components/elements/Navbar/NavbarDesktop.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/components/elements/Navbar/NavbarDesktop.jsx')
-rw-r--r--src/core/components/elements/Navbar/NavbarDesktop.jsx33
1 files changed, 28 insertions, 5 deletions
diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx
index fcb54802..837d436c 100644
--- a/src/core/components/elements/Navbar/NavbarDesktop.jsx
+++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx
@@ -10,9 +10,10 @@ import DesktopView from '../../views/DesktopView'
import dynamic from 'next/dynamic'
import IndoteknikLogo from '@/images/logo.png'
import Category from '@/lib/category/components/Category'
-import { useState } from 'react'
+import { useEffect, useState } from 'react'
import useAuth from '@/core/hooks/useAuth'
import NavbarUserDropdown from './NavbarUserDropdown'
+import { getCart } from '@/core/utils/cart'
const Search = dynamic(() => import('./Search'))
@@ -20,6 +21,21 @@ const NavbarDesktop = () => {
const [isOpenCategory, setIsOpenCategory] = useState(false)
const auth = useAuth()
+ const [cartCount, setCartCount] = useState(0)
+
+ useEffect(() => {
+ const handleCartChange = () => {
+ setCartCount(Object.keys(getCart()).length)
+ }
+ handleCartChange()
+
+ window.addEventListener('localStorageChange', handleCartChange)
+
+ return () => {
+ window.removeEventListener('localStorageChange', handleCartChange)
+ }
+ }, [])
+
return (
<DesktopView>
<div className='py-3 bg-warning-400' id='desktop-nav-top'>
@@ -57,10 +73,17 @@ const NavbarDesktop = () => {
Quotation
</Link>
<Link href='/shop/cart' className='flex items-center gap-x-2 !text-gray_r-12/80'>
- <ShoppingCartIcon className='w-7' />
- Keranjang
- <br />
- Belanja
+ <div className='relative mr-2'>
+ <ShoppingCartIcon className='w-7' />
+ <span className='absolute -top-2 -right-2 badge-solid-red rounded-full w-5 h-5 flex items-center justify-center'>
+ {cartCount}
+ </span>
+ </div>
+ <span>
+ Keranjang
+ <br />
+ Belanja
+ </span>
</Link>
<Link href='/my/wishlist' className='flex items-center gap-x-2 !text-gray_r-12/80'>
<HeartIcon className='w-7' />