/* ═══════════════════════════════════════════════════════════════════════════ * IMPHNEN DashboardPanel — Statistics Hub for Guild Moderation Watcher * Menampilkan overview komunitas dengan IMPHNEN approachable modernism. * Tiga tab: Stats (ringkasan), Users (profil pengguna), Channels (kanal). * ═══════════════════════════════════════════════════════════════════════════ */ import { useState } from "react"; import { BarChart3, Hash, Users, } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger, } from "../../shared/ui"; import { ChannelProfileDetail } from "./components/ChannelProfileDetail"; import { ChannelSummaryList } from "./components/ChannelSummaryList"; import { DashboardStatsContent } from "./components/DashboardStats"; import { UserProfileDetail } from "./components/UserProfileDetail"; import { UserSummaryList } from "./components/UserSummaryList"; import { useDashboardChannelDetail, useDashboardChannels, useDashboardUserDetail, useDashboardUsers, } from "./hooks/useDashboard"; export function DashboardPanel() { const [activeTab, setActiveTab] = useState("stats"); const [selectedUserId, setSelectedUserId] = useState(null); const [selectedChannelId, setSelectedChannelId] = useState( null, ); const { users, loading: usersLoading, error: usersError, search: userSearch, setSearch: setUserSearch, loadMore: loadMoreUsers, hasMore: hasMoreUsers, refetch: refetchUsers, } = useDashboardUsers(); const { detail: userDetail, loading: userDetailLoading, error: userDetailError, refetch: refetchUserDetail, } = useDashboardUserDetail(selectedUserId); const { channels, loading: channelsLoading, error: channelsError, search: channelSearch, setSearch: setChannelSearch, loadMore: loadMoreChannels, hasMore: hasMoreChannels, refetch: refetchChannels, } = useDashboardChannels(); const { detail: channelDetail, loading: channelDetailLoading, error: channelDetailError, refetch: refetchChannelDetail, } = useDashboardChannelDetail(selectedChannelId); // Show user detail view if (selectedUserId) { return ( { setSelectedUserId(null); }} onRefetch={refetchUserDetail} /> ); } // Show channel detail view if (selectedChannelId) { return ( { setSelectedChannelId(null); }} onRefetch={refetchChannelDetail} /> ); } return (
{/* ── Page Header ───────────────────────────────────────────────── */}

Dashboard Guild

Pantau statistik, profil pengguna, dan aktivitas kanal komunitas IMPHNEN secara real-time.

{/* ── Tabs ────────────────────────────────────────────────────────── */} Statistik Pengguna Kanal
); }