"use client" import React, { useEffect, useState } from "react" import { cn } from "@/lib/utils" import Image from "next/image" import { Button } from "../ui/button" import { useCurrentUser } from "@/hooks/auth" import { Avatar, AvatarFallback, AvatarImage } from "../ui/avatar" import Link from "next/link" import { usePathname, useSearchParams, useRouter } from "next/navigation" import { useMainLayout } from "@/context/mainLayout" function Topbar () { const [isBlur, setIsBlur] = useState(false) const { data: user } = useCurrentUser() const router = useRouter() const pathname = usePathname(); const searchParams = useSearchParams(); const { isSidebarExpanded } = useMainLayout(); const searchParamsString = searchParams.toString() const redirectURL = `${pathname}${searchParamsString ? `?${searchParamsString}` : ''}` const isImageCreatePage = ['/generate/image', '/generate/image-2-image', '/generate/image-edit', '/generate/image-2-background'].includes(pathname); useEffect(() => { function handleScroll (event: Event) { const dom = event.target as HTMLElement setIsBlur(dom.scrollTop > 0) } const dom = document.getElementById("main-content") if (dom) { dom.addEventListener("scroll", handleScroll, { passive: true }) } return () => { if (dom) { dom.removeEventListener("scroll", handleScroll) } } }, []) useEffect(() => { if (user && user.cpUserInfo) { router.push("/login/fields?redirect=" + encodeURIComponent(redirectURL)) } }, [user]) return (
{isBlur &&
}
logo
{user ? ( {user.nickname?.slice(0, 1)} ) : ( )}
) } export default Topbar