import { useParams } from 'react-router'; import { useQuery } from '@tanstack/react-query'; import { Users, RefreshCw } from 'lucide-react'; import { api } from '@/lib/api'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; interface Player { name: string; steamid?: string; } interface PlayerListResponse { players: Player[]; maxPlayers: number; } export function PlayersPage() { const { orgId, serverId } = useParams(); const { data, isLoading, refetch } = useQuery({ queryKey: ['players', orgId, serverId], queryFn: () => api.get(`/organizations/${orgId}/servers/${serverId}/players`), refetchInterval: 30000, }); const players = data?.players ?? []; const maxPlayers = data?.maxPlayers ?? 0; return (

Active Players

{players.length} / {maxPlayers} players online

{players.length === 0 ? (

No players online

Player tracking requires RCON to be enabled on the server

) : (
{players.map((player, i) => (
{player.name.charAt(0).toUpperCase()}

{player.name}

{player.steamid && (

{player.steamid}

)}
))}
)}
); }