Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import { getPlayersWithSkillData } from '@/lib/curriculum/server' import { getUserId } from '@/lib/viewer' import { PracticeClient } from './PracticeClient' /** * Practice page - Server Component * * Fetches player list on the server and passes to client component. * This provides instant rendering with no loading spinner. * * URL: /practice */ export default async function PracticePage() { // Fetch players with skill data directly on server - no HTTP round-trip const players = await getPlayersWithSkillData() // Get database user ID for parent socket notifications and session observation const userId = await getUserId() return <PracticeClient initialPlayers={players} viewerId={userId} userId={userId} /> } |