"use client" import { Player } from "@rahoot/common/types/game" import { ManagerStatusDataMap } from "@rahoot/common/types/game/status" import { useEvent, useSocket } from "@rahoot/web/contexts/socketProvider" import { useState } from "react" type Props = { data: ManagerStatusDataMap["SHOW_ROOM"] } export default function Room({ data: { text, inviteCode } }: Props) { const { socket } = useSocket() const [playerList, setPlayerList] = useState([]) const [totalPlayers, setTotalPlayers] = useState(0) useEvent("manager:newPlayer", (player) => { setPlayerList([...playerList, player]) }) useEvent("manager:removePlayer", (playerId) => { setPlayerList(playerList.filter((p) => p.id !== playerId)) }) useEvent("manager:playerKicked", (playerId) => { setPlayerList(playerList.filter((p) => p.id !== playerId)) }) useEvent("game:totalPlayers", (total) => { setTotalPlayers(total) }) const handleKick = (playerId: string) => () => { socket?.emit("manager:kickPlayer", { data: { playerId }, }) } return (
{inviteCode}

{text}

Players Joined: {totalPlayers}
{playerList.map((player) => (
{player.username}
))}
) }