"use client"; import '../pages/style/top-bar.css'; import { Button } from '@/components/ui/button'; import { GradientText } from '@/components/ui/gradient-text'; import { useTheme } from 'next-themes'; import { Sun, Moon, User, Sparkles, LogOut, Bell, PanelsLeftBottom, Library } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; import { useRouter } from 'next/navigation'; import React, { useRef, useEffect } from 'react'; export function TopBar({ collapsed, onToggleSidebar }: { collapsed: boolean; onToggleSidebar: () => void }) { const { theme, setTheme } = useTheme(); const router = useRouter(); const [isOpen, setIsOpen] = React.useState(false); const menuRef = useRef(null); const buttonRef = useRef(null); const currentUser = localStorage.getItem('currentUser'); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if ( menuRef.current && !menuRef.current.contains(event.target as Node) && buttonRef.current && !buttonRef.current.contains(event.target as Node) ) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); const handleAnimationEnd = (event: React.AnimationEvent) => { const element = event.currentTarget; element.classList.remove('on'); }; const handleMouseEnter = (event: React.MouseEvent) => { const element = event.currentTarget; element.classList.add('on'); }; return (
router.push('/')} onMouseEnter={handleMouseEnter} onAnimationEnd={handleAnimationEnd} >

{/* Pricing Link */} {/* Notifications */} {/* Theme Toggle */} {/* */} {/* User Menu */}
{isOpen && ( {/* User Info */}
A

admin-live

admin-live.com

{/* AI Points */}
100 点数
{/* Menu Items */}
router.push('/my-library')} data-alt="my-library-button" > 我的库 { // 处理退出登录 setIsOpen(false); }} data-alt="logout-button" > 退出账号 {/* Footer */}
隐私权和条款 · 许可
250819215404 | 2025/8/20 06:00:50
)}
); }