import { useState, useRef, useEffect } from 'react'; import { Mail, Users, MessageCircle, ChevronDown, Check, Heart, X, Languages, HelpCircle } from 'lucide-react'; import { useLanguage } from '../contexts/LanguageContext'; export default function Navbar() { const { language, setLanguage, t } = useLanguage(); const [showContact, setShowContact] = useState(false); const [showReward, setShowReward] = useState(false); const [showLangMenu, setShowLangMenu] = useState(false); const [copied, setCopied] = useState(false); const dropdownRef = useRef(null); const langMenuRef = useRef(null); const handleCopyQQ = async () => { await navigator.clipboard.writeText('1018282100'); setCopied(true); setTimeout(() => setCopied(false), 2000); }; // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setShowContact(false); } if (langMenuRef.current && !langMenuRef.current.contains(event.target as Node)) { setShowLangMenu(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => document.removeEventListener('mousedown', handleClickOutside); }, []); return (
{/* Left: Logo */}
TexPixel TexPixel
{/* Right: Actions */}
{/* Language Switcher */}
{showLangMenu && (
)}
{/* User Guide Button */} {/* Reward Button */}
{/* Reward Modal */} {showReward && (
setShowReward(false)} >
e.stopPropagation()} >
{t.navbar.rewardTitle}
{t.navbar.rewardTitle}

{t.navbar.rewardThanks}
{t.navbar.rewardSubtitle}

)}
{/* Contact Button with Dropdown */}
{/* Contact Dropdown List */} {showContact && (
{t.common.email}
yogecoder@gmail.com
{copied ? ( ) : ( )}
{copied ? t.common.copied : t.common.qqGroup}
1018282100
)}
); }