"use client"; import { useEffect, useState } from "react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { ServerControls } from "@/components/ServerControls"; import { Analytics } from "@/components/Analytics"; import { PlayerManager } from "@/components/PlayerManager"; import { ChatBridge } from "@/components/ChatBridge"; import { ModManager } from "@/components/ModManager"; import { BackupManager } from "@/components/BackupManager"; import { LogViewer } from "@/components/LogViewer"; const TABS = [ { value: "server", label: "Server" }, { value: "players", label: "Players" }, { value: "chat", label: "Chat" }, { value: "mods", label: "Mods" }, { value: "backups", label: "Backups" }, { value: "logs", label: "Logs" }, ]; export function AdminTabs() { const [mounted, setMounted] = useState(false); const [value, setValue] = useState("server"); useEffect(() => { setMounted(true); const hash = window.location.hash.replace("#", ""); if (hash && TABS.some((t) => t.value === hash)) { setValue(hash); return; } const saved = localStorage.getItem("admin-tab"); if (saved && TABS.some((t) => t.value === saved)) setValue(saved); }, []); useEffect(() => { if (!mounted) return; localStorage.setItem("admin-tab", value); history.replaceState(null, "", `#${value}`); }, [value, mounted]); if (!mounted) return null; return ( setValue(v as string)} className="w-full" > {TABS.map((t) => ( {t.label} ))} ); }