-
Notifications
You must be signed in to change notification settings - Fork 626
Expand file tree
/
Copy pathNavbar.jsx
More file actions
93 lines (81 loc) · 3.44 KB
/
Copy pathNavbar.jsx
File metadata and controls
93 lines (81 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
"use client"
import React from "react";
import { assets, BagIcon, BoxIcon, CartIcon, HomeIcon } from "@/assets/assets";
import Link from "next/link"
import { useAppContext } from "@/context/AppContext";
import Image from "next/image";
import { useClerk, UserButton } from "@clerk/nextjs";
const Navbar = () => {
const { isSeller, router, user } = useAppContext();
const { openSignIn } = useClerk()
return (
<nav className="flex items-center justify-between px-6 md:px-16 lg:px-32 py-3 border-b border-gray-300 text-gray-700">
<Image
className="cursor-pointer w-28 md:w-32"
onClick={() => router.push('/')}
src={assets.logo}
alt="logo"
/>
<div className="flex items-center gap-4 lg:gap-8 max-md:hidden">
<Link href="/" className="hover:text-gray-900 transition">
Home
</Link>
<Link href="/all-products" className="hover:text-gray-900 transition">
Shop
</Link>
<Link href="/" className="hover:text-gray-900 transition">
About Us
</Link>
<Link href="/" className="hover:text-gray-900 transition">
Contact
</Link>
{isSeller && <button onClick={() => router.push('/seller')} className="text-xs border px-4 py-1.5 rounded-full">Seller Dashboard</button>}
</div>
<ul className="hidden md:flex items-center gap-4 ">
<Image className="w-4 h-4" src={assets.search_icon} alt="search icon" />
{
user
? <>
<UserButton>
<UserButton.MenuItems>
<UserButton.Action label="Cart" labelIcon={<CartIcon />} onClick={()=>router.push('/cart')}/>
</UserButton.MenuItems>
<UserButton.MenuItems>
<UserButton.Action label="My orders" labelIcon={<BagIcon />} onClick={()=>router.push('/my-orders')}/>
</UserButton.MenuItems>
</UserButton>
</>
: <button onClick={openSignIn} className="flex items-center gap-2 hover:text-gray-900 transition">
<Image src={assets.user_icon} alt="user icon" />
Account
</button>}
</ul>
<div className="flex items-center md:hidden gap-3">
{isSeller && <button onClick={() => router.push('/seller')} className="text-xs border px-4 py-1.5 rounded-full">Seller Dashboard</button>}
{
user
? <>
<UserButton>
<UserButton.MenuItems>
<UserButton.Action label="Home" labelIcon={<HomeIcon />} onClick={()=>router.push('/')}/>
</UserButton.MenuItems>
<UserButton.MenuItems>
<UserButton.Action label="Products" labelIcon={<BoxIcon />} onClick={()=>router.push('/all-products')}/>
</UserButton.MenuItems>
<UserButton.MenuItems>
<UserButton.Action label="Cart" labelIcon={<CartIcon />} onClick={()=>router.push('/cart')}/>
</UserButton.MenuItems>
<UserButton.MenuItems>
<UserButton.Action label="My orders" labelIcon={<BagIcon />} onClick={()=>router.push('/my-orders')}/>
</UserButton.MenuItems>
</UserButton>
</>
: <button onClick={openSignIn} className="flex items-center gap-2 hover:text-gray-900 transition">
<Image src={assets.user_icon} alt="user icon" />
Account
</button>}
</div>
</nav>
);
};
export default Navbar;