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 isMyHand = !isHidden;
return (
<div className="hand">
{
hand.map((card, index) => {
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";
interface GameState {
PlayerName: string;
Hand: string[];
CurrentCard: string;
CurrentPlayer: string;
Players: string[];
}
const Room = () => {
@@ -19,7 +22,7 @@ const Room = () => {
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, {
onOpen: () => {
@@ -46,9 +49,16 @@ const Room = () => {
<GHButton onClick={handleLeaveRoom}>Leave Room</GHButton>
{
gameState.CurrentCard &&
<Card cardString={gameState.CurrentCard}/>
<Card cardString={gameState.CurrentCard}/>
}
<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>
)
}