'use client'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; import { Sparkles, LogOut, CalendarDays, Coins, FileText, Settings2 } from 'lucide-react'; import ThemeToggle from './ThemeToggle'; export default function Header({ user }) { const router = useRouter(); const [credits, setCredits] = useState(null); useEffect(() => { if (!user) return; const refresh = () => fetch('/api/billing/balance').then(r => r.json()) .then(d => setCredits(d.isUnlimited ? '∞' : d.credits)).catch(() => {}); refresh(); window.addEventListener('credits-updated', refresh); return () => window.removeEventListener('credits-updated', refresh); }, [user?.id]); async function logout() { await fetch('/api/auth/logout', { method: 'POST' }); router.push('/login'); } return (
ZeroPost
{/* Баланс кредитов */} {credits !== null && ( {credits} кр )} {user?.email}
); } // Публичный хедер для лендинга — отдельный экспорт export function PublicHeader() { return (
ZeroPost
Войти Начать бесплатно
); }