'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import { Button } from '@/components/ui/button'; import { authApi, userApi } from '@/lib/api'; import { ThemeToggle } from '@/components/shared/ThemeToggle'; export default function MainLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const router = useRouter(); const [userName, setUserName] = useState(''); const [isLoading, setIsLoading] = useState(true); useEffect(() => { // Check if user is authenticated const token = localStorage.getItem('token'); if (!token) { router.push('/login'); return; } // Fetch user profile userApi.getProfile() .then(data => { setUserName(data.user.Name); setIsLoading(false); }) .catch(() => { // If error fetching profile, redirect to login router.push('/login'); }); }, [router]); const handleLogout = () => { authApi.logout(); }; if (isLoading) { return
Loading...
; } return (
{/* Top Navigation */}
Finance Management
Welcome!, {userName}
{/* Main Content */}
{/* Sidebar */} {/* Page Content */}
{children}
); }