import { useState, useEffect } from 'react'; import { LogOut, ChevronDown } from 'lucide-react'; import { Avatar, AvatarFallback, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Separator, ThemeToggle, } from '@/components'; import { cn } from '@/lib/utils/utils'; import { useTheme } from '@/lib/contexts/ThemeContext'; // Import SVG icons import DiscordIcon from '@/assets/logos/discord.svg?react'; import GitHubIcon from '@/assets/logos/github.svg?react'; import InsForgeLogoLight from '@/assets/logos/insforge_light.svg'; import InsForgeLogoDark from '@/assets/logos/insforge_dark.svg'; import { User } from '@/lib/contexts/AuthContext'; interface AppHeaderProps { currentUser: User | null; onLogout: () => void; } export default function AppHeader({ currentUser, onLogout }: AppHeaderProps) { const { resolvedTheme } = useTheme(); const [currentEmojiIndex, setCurrentEmojiIndex] = useState(0); const emojis = ['🙏', '🥺', '🫵']; useEffect(() => { const interval = setInterval(() => { setCurrentEmojiIndex((prevIndex) => (prevIndex + 1) % emojis.length); }, 2000); return () => clearInterval(interval); }, [emojis.length]); const getUserInitials = (email: string) => { if (!email) { return 'U'; } const parts = email.split('@')[0].split('.'); if (parts.length > 1) { return (parts[0].charAt(0) + parts[1].charAt(0)).toUpperCase(); } return email.substring(0, 2).toUpperCase(); }; const getAvatarColor = (email: string) => { if (!email) { return 'bg-gray-500'; } const hash = email.split('').reduce((acc, char) => acc + char.charCodeAt(0), 0); const colors = [ 'bg-blue-500', 'bg-green-500', 'bg-yellow-500', 'bg-purple-500', 'bg-pink-500', 'bg-indigo-500', ]; return colors[hash % colors.length]; }; return (
We need you {emojis[currentEmojiIndex]}
{/* Discord Badge */}Ask us anything