Skip to content

Commit

Permalink
refactor: update navbar design
Browse files Browse the repository at this point in the history
  • Loading branch information
mickasmt committed May 29, 2024
1 parent b5c4308 commit 97b1492
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 23 deletions.
63 changes: 41 additions & 22 deletions components/layout/navbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@

import { MainNavItem } from "@/types";
import { useSession } from "next-auth/react";
import Link from "next/link";
import { usePathname } from "next/navigation";

import { Icons } from "@/components/shared/icons";
import MaxWidthWrapper from "@/components/shared/max-width-wrapper";
import { Button } from "@/components/ui/button";
import { Skeleton } from "@/components/ui/skeleton";
import useScroll from "@/hooks/use-scroll";
import { useSigninModal } from "@/hooks/use-signin-modal";
import { Button } from "@/components/ui/button";

import { Icons } from "../shared/icons";
import { MainNav } from "./main-nav";
import { UserAccountNav } from "./user-account-nav";

Expand All @@ -16,50 +20,57 @@ interface NavBarProps {
children?: React.ReactNode;
rightElements?: React.ReactNode;
scroll?: boolean;
large?: boolean;
}

export function NavBar({
items,
children,
rightElements,
scroll = false,
large = false,
}: NavBarProps) {
const scrolled = useScroll(50);
const signInModal = useSigninModal();
const { data: session, status } = useSession();
const selectedLayout = usePathname();
const dashBoard = selectedLayout.startsWith("/dashboard");

return (
<header
className={`sticky top-0 z-40 flex w-full justify-center bg-background/60 backdrop-blur-xl transition-all ${
scroll ? (scrolled ? "border-b" : "bg-background/0") : "border-b"
}`}
>
<div className="container flex h-[60px] items-center justify-between py-4">
<MaxWidthWrapper
className="flex h-[60px] items-center justify-between py-4"
large={large}
>
<MainNav items={items}>{children}</MainNav>

<div className="flex items-center space-x-3">
{rightElements}

{/* {!user ? (
<Link
href="/login"
className={cn(
buttonVariants({
variant: "outline",
rounded: "full",
}),
"px-4",
)}
>
Login Page
</Link>
) : null} */}

{session ? (
<UserAccountNav user={session.user} />
<>
{dashBoard ? (
<UserAccountNav user={session.user} />
) : (
<Link href="/dashboard">
<Button
className="gap-2 px-4"
variant="default"
size="sm"
rounded="full"
>
<span>Dashboard</span>
</Button>
</Link>
)}
</>
) : status === "unauthenticated" ? (
<Button
className="animate-fade-in gap-2 px-4 transition-colors ease-out"
className="gap-2 px-4"
variant="default"
size="sm"
rounded="full"
Expand All @@ -68,9 +79,17 @@ export function NavBar({
<span>Sign In</span>
<Icons.arrowRight className="size-4" />
</Button>
) : null}
) : (
<>
{dashBoard ? (
<Skeleton className="size-9 rounded-full" />
) : (
<Skeleton className="h-9 w-24 rounded-full" />
)}
</>
)}
</div>
</div>
</MaxWidthWrapper>
</header>
);
}
2 changes: 1 addition & 1 deletion components/layout/user-account-nav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export function UserAccountNav({ user }: UserAccountNavProps) {
<DropdownMenuTrigger>
<UserAvatar
user={{ name: user?.name || null, image: user?.image || null }}
className="size-8 animate-fade-in border transition-colors ease-out"
className="size-9 border"
/>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
Expand Down

0 comments on commit 97b1492

Please sign in to comment.