'use client'; import { type HTMLAttributes, useEffect, useState } from 'react'; import Link from 'next/link'; import { useParams } from 'next/navigation'; import { MenuIcon, SearchIcon } from 'lucide-react'; import type { GetTeamsResponse } from '@documenso/lib/server-only/team/get-teams'; import { getRootHref } from '@documenso/lib/utils/params'; import type { User } from '@documenso/prisma/client'; import { cn } from '@documenso/ui/lib/utils'; import { Logo } from '~/components/branding/logo'; import { CommandMenu } from '../common/command-menu'; import { DesktopNav } from './desktop-nav'; import { MenuSwitcher } from './menu-switcher'; import { MobileNavigation } from './mobile-navigation'; export type HeaderProps = HTMLAttributes & { user: User; teams: GetTeamsResponse; }; export const Header = ({ className, user, teams, ...props }: HeaderProps) => { const params = useParams(); const [isCommandMenuOpen, setIsCommandMenuOpen] = useState(false); const [isHamburgerMenuOpen, setIsHamburgerMenuOpen] = useState(false); const [scrollY, setScrollY] = useState(0); useEffect(() => { const onScroll = () => { setScrollY(window.scrollY); }; window.addEventListener('scroll', onScroll); return () => window.removeEventListener('scroll', onScroll); }, []); return (
5 && 'border-b-border', className, )} {...props} >
); };