import React, { useCallback } from 'react'; import { usePage } from '@inertiajs/react'; import { Link, router } from '@inertiajs/react'; import { useTranslation } from 'react-i18next'; import i18n from '@/i18n'; import { useAppearance } from '@/hooks/use-appearance'; import { useLocalizedRoutes } from '@/hooks/useLocalizedRoutes'; import { Button } from '@/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { Sun, Moon } from 'lucide-react'; import { cn } from '@/lib/utils'; const Header: React.FC = () => { const { auth } = usePage().props as any; const { t } = useTranslation('auth'); const { appearance, updateAppearance } = useAppearance(); const { localizedPath } = useLocalizedRoutes(); const toggleTheme = () => { const newAppearance = appearance === 'dark' ? 'light' : 'dark'; updateAppearance(newAppearance); }; const handleLanguageChange = useCallback(async (value: string) => { console.log('handleLanguageChange called with:', value); try { const response = await fetch('/set-locale', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '', }, body: JSON.stringify({ locale: value }), }); console.log('fetch response:', response.status); if (response.ok) { console.log('calling i18n.changeLanguage with:', value); i18n.changeLanguage(value); // Reload only the locale prop to update the page props router.reload({ only: ['locale'] }); } } catch (error) { console.error('Failed to change locale:', error); } }, []); const handleLogout = () => { router.post('/logout'); }; return (
Fotospiel
{auth.user ? (

{auth.user?.name || auth.user?.email || 'User'}

{auth.user?.email || ''}

Profil Bestellungen Abmelden
) : ( <> {t('header.login')} {t('header.register')} )}
); }; export default Header;