import { Outlet, NavLink, useNavigate } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { useAuth } from '../auth/AuthContext'; import { UserAvatar } from '../components/UserAvatar'; import api from '../api/client'; import styles from './AppLayout.module.css'; interface ExternalLink { id: string; label: string; url: string; sortOrder: number; } /** Favicon-URL aus einer Website-URL ableiten (Google Favicon Service) */ function getFaviconUrl(url: string): string | null { try { const domain = new URL(url).hostname; return `https://www.google.com/s2/favicons?domain=${domain}&sz=32`; } catch { return null; } } export function AppLayout() { const { user, logout } = useAuth(); const navigate = useNavigate(); const { data: externalLinks } = useQuery({ queryKey: ['settings', 'external-links'], queryFn: async () => { const res = await api.get('/settings/external-links'); return res.data; }, staleTime: 5 * 60 * 1000, }); const handleLogout = async () => { await logout(); navigate('/login'); }; return (
{/* Sidebar */} {/* Main Content */}
); }