"use client" import { useState, useEffect } from "react" import { motion } from "framer-motion" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { OverviewTab } from "@/components/pages/dashboard/OverviewTab" import { SecurityTab } from "@/components/pages/dashboard/SecurityTab" import { ServicesTab } from "@/components/pages/dashboard/ServicesTab" import { GitTab } from "@/components/pages/dashboard/GitTab" import { SideMenu } from "@/components/pages/dashboard/SideMenu" const fadeIn = { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.4 }, } export default function Dashboard() { const [dashboardState, setDashboardState] = useState({ gitUser: "Unlinked", gitFollowerCt: 0, gitFollowingCt: 0, gitAvatar: "", gitLastLogin: "", gitIsAdmin: false, gitEmail: "", showRunSecurityCheckBtn: true, securityCheckBtnLoading: false, }) useEffect(() => { const checkGitLinkStatus = async () => { try { const response = await fetch("/api/git/user") if (response.ok) { const data = await response.json() setDashboardState((prev) => ({ ...prev, gitUser: data.username || "Unlinked", gitAvatar: data.avatar_url || "", gitLastLogin: data.last_login || "Never", gitFollowerCt: data.followers_count || 0, gitFollowingCt: data.following_count || 0, gitIsAdmin: data.is_admin || false, gitEmail: data.email || "", })) } else { throw new Error("Failed to fetch Gitea account details"); } } catch (error) { console.error("Error fetching your Gitea user data:", error); } } checkGitLinkStatus() }, []) return (