"use client" import { useEffect, useState } from "react" import { useNavigate } from "react-router-dom" import { motion } from "framer-motion" import { Users, Database, FileText, Settings, BarChart2, Calendar, Clock, PlusCircle, Search, User, Bell, Home, } from "lucide-react" import { Link } from "react-router-dom" export default function AdminDashboard() { const [isFirstLoad, setIsFirstLoad] = useState(true) const [isProfileDropdownOpen, setIsProfileDropdownOpen] = useState(false) const navigate = useNavigate() useEffect(() => { // Check if user is authenticated const token = localStorage.getItem("adminToken") if (!token) { navigate("/admin/login") return } // Check if we're navigating from another admin page const hasVisitedAdmin = localStorage.getItem("adminNavigation") // Skip loading if we're navigating from another admin page if (hasVisitedAdmin) { setIsFirstLoad(false) } else { // Set flag to indicate we've visited an admin page localStorage.setItem("adminNavigation", "true") // Only show loading state on first load if (isFirstLoad) { // Simulate loading dashboard data const timer = setTimeout(() => { setIsFirstLoad(false) // Show welcome toast }, 500) // Reduced loading time for better UX return () => clearTimeout(timer) } } }, [isFirstLoad, navigate]) const handleLogout = () => { localStorage.removeItem("adminToken") localStorage.removeItem("adminNavigation") // Clear navigation flag on logout navigate("/admin/login") } // If it's the first load, show a loading state if (isFirstLoad) { return (
Loading dashboard...
Northern Territory DB
Total Migrants
Total Records
Recent Updates
Pending Tasks
{activity.action}
By {activity.user} • {activity.time}