koperasi/services/frontend/app/components/layouts/header.tsx

37 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-08-08 07:12:40 +00:00
import { useJWTPayload } from "~/hooks/use-jwt-payload";
import { useGetUserById } from "~/services/profile/get-by-id";
import type { NavItem } from "~/types/constants/nav-item";
import { MobileSidebar } from "./mobile-sidebar";
import { UserNav } from "./user-nav";
type HeaderProps = {
navItems: NavItem[];
profileHref: string;
};
export default function Header({ navItems, profileHref }: HeaderProps) {
const { jwtPayload } = useJWTPayload();
const { data } = useGetUserById(jwtPayload.id);
return (
<header className="z-50 w-full bg-white shadow-sm">
<nav className="flex items-center justify-between px-4 py-2.5 md:justify-end">
<div className="lg:!hidden flex flex-1 items-center gap-2">
<MobileSidebar navItems={navItems} />
<img src="/img/icon.png" alt="Logo" className="w-40" />
</div>
<div className="flex items-center gap-3">
<span className="hidden font-medium text-sm md:block">
Halo, <span className="uppercase">{data?.nama}</span>
</span>
<UserNav
profileHref={profileHref}
username={data?.nama || ""}
phone={data?.no_hp || ""}
/>
</div>
</nav>
</header>
);
}