added visual indicator whos turn it is and who you are

This commit is contained in:
2023-03-17 11:43:26 +01:00
parent bc95b7eff3
commit f72b63e4cf
2 changed files with 17 additions and 3 deletions

View File

@@ -8,12 +8,16 @@ interface Props {
} }
const Hand: FunctionComponent<Props> = ({hand, actionOnClick, isHidden}) => { const Hand: FunctionComponent<Props> = ({hand, actionOnClick, isHidden}) => {
const isMyHand = !isHidden;
return ( return (
<div className="hand"> <div className="hand">
{ {
hand.map((card, index) => { hand.map((card, index) => {
return ( return (
<Card key={index} cardString={card} handleClick={actionOnClick} isHidden={isHidden}/> <Card key={index} cardString={card} handleClick={actionOnClick} isHidden={!isMyHand}
isClickable={isMyHand}/>
) )
}) })
} }

View File

@@ -7,8 +7,11 @@ import Card from "../components/Card";
import Hand from "../components/Hand"; import Hand from "../components/Hand";
interface GameState { interface GameState {
PlayerName: string;
Hand: string[]; Hand: string[];
CurrentCard: string; CurrentCard: string;
CurrentPlayer: string;
Players: string[];
} }
const Room = () => { const Room = () => {
@@ -19,7 +22,7 @@ const Room = () => {
const WS_URL = `ws://${process.env.REACT_APP_API_URL}/room/${roomId}`; const WS_URL = `ws://${process.env.REACT_APP_API_URL}/room/${roomId}`;
const [gameState, setGameState] = React.useState<GameState>({Hand: [], CurrentCard: ''}); const [gameState, setGameState] = React.useState<GameState>({PlayerName: '', Hand: [], CurrentCard: '', CurrentPlayer: '', Players: []});
const websocket = useWebSocket(WS_URL, { const websocket = useWebSocket(WS_URL, {
onOpen: () => { onOpen: () => {
@@ -49,6 +52,13 @@ const Room = () => {
<Card cardString={gameState.CurrentCard}/> <Card cardString={gameState.CurrentCard}/>
} }
<Hand hand={gameState.Hand} actionOnClick={handleCardSend}/> <Hand hand={gameState.Hand} actionOnClick={handleCardSend}/>
<ul>
{
gameState.Players.map((player, index) => {
return <li key={index} style={{fontWeight: player === gameState.CurrentPlayer ? 'bold' : 'normal'}}>{player} {player === gameState.PlayerName && '(You)'}</li>
})
}
</ul>
</div> </div>
) )
} }