Header
It includes:
- 🔗 Logo with home navigation
- 📂 Category menu
- 🔍 Search bar (auto updates route)
- 👤 User profile with logout
🧩 Header Component Example
components/ZezoHeader.tsx
"use client";
import { Header as ZezoOttHeader } from "@zezosoft/zezo-ott-react-ui-kit";
import Link from "next/link";
import { useState } from "react";
import { useRouter } from "next/navigation";
import { useMutation } from "@tanstack/react-query";
import toast from "react-hot-toast";
import { zezoClient } from "@/lib/zezoClient";
interface HeaderProps {
settings: IWebSetting | null;
categories: IGetCategoriesData[] | null;
whoami: IWhoami | null;
}
const Header: React.FC<HeaderProps> = ({
categories = [],
settings,
whoami,
}) => {
const router = useRouter();
const [search, setSearch] = useState("");
const logoutMutation = useMutation({
mutationFn: zezoClient().auth.logout,
onSuccess: () => router.push("/"),
onError: () => toast.error("Logout failed"),
});
return (
<ZezoOttHeader
logo={{
src: settings?.logo || "https://default-logo.png",
alt: "Zezo OTT",
href: "/",
linkComponent: Link,
}}
menu={{
menu: categories,
menuShowLimit: 4,
}}
search={{
value: search,
onChange: (e) => {
setSearch(e.target.value);
router.replace(`/search?q=${encodeURIComponent(e.target.value)}`);
},
}}
profile={{ href: "/phone-login" }}
user={whoami}
onLogout={() => logoutMutation.mutate()}
/>
);
};
export default Header;
🖼️ UI Preview
Here’s how the Header
component looks in action:
Last updated on