26 lines
597 B
TypeScript
26 lines
597 B
TypeScript
|
|
'use client';
|
|
|
|
import React, { useEffect } from 'react';
|
|
import { useRouter } from 'next/navigation';
|
|
import { useAuth } from '@/fsd/app/provider/AuthContext';
|
|
|
|
const AuthGuard: React.FC<{ children: React.ReactNode }> = ({ children }) => {
|
|
const { isAuthenticated } = useAuth();
|
|
const router = useRouter();
|
|
|
|
useEffect(() => {
|
|
if (!isAuthenticated) {
|
|
router.replace('/login');
|
|
}
|
|
}, [isAuthenticated, router]);
|
|
|
|
if (!isAuthenticated) {
|
|
return null; // Или можно отобразить загрузочный экран
|
|
}
|
|
|
|
return <>{children}</>;
|
|
};
|
|
|
|
export default AuthGuard;
|