'use client' import { useEffect, useState, useRef } from 'react' import { useAuth } from '@/hooks/useAuth' import { AuthFlow } from './auth/auth-flow' interface AuthGuardProps { children: React.ReactNode fallback?: React.ReactNode } export function AuthGuard({ children, fallback }: AuthGuardProps) { const { isAuthenticated, isLoading, checkAuth, user } = useAuth() const [isChecking, setIsChecking] = useState(true) const initRef = useRef(false) // Защита от повторных инициализаций useEffect(() => { const initAuth = async () => { if (initRef.current) { return } initRef.current = true await checkAuth() setIsChecking(false) } initAuth() }, [checkAuth, isAuthenticated, user]) // Добавляем зависимости как требует линтер // Показываем лоадер пока проверяем авторизацию if (isChecking || isLoading) { return (
Проверяем авторизацию...