import { useEffect, useState } from "react"; import { v4 } from "uuid"; import { setStateAwaitAction, setStateBuyCard, setStateGetChips, setStateReserveCard } from "../../hooks/stateSetters"; import { hasMaxReserved } from "./ActionMethods/reserveCardActions"; import { hasMaxChips } from "./ActionMethods/getChipsActions"; import { CardData, PlayerData } from "../../util/types" import { PlayerProps } from "../../util/propTypes"; import Card from "../Card/Card"; export default function Player({ player, state, setState }: PlayerProps) { const [dynamic, setDynamic] = useState(); const [cardView, setCardView] = useState(

Cards:

); const [reservedView, setReservedView] = useState(

Reserved cards:

); useEffect(() => { setDynamic(state.players.find((element: PlayerData) => element.id === player.id)) }, [state]); useEffect(() => { dynamic && setCardView(

Cards:

{ Object.entries(dynamic.cards).map(([key, value]) => value.length > 0 &&

{key}: {value.length}

) }
) dynamic && setReservedView(

Reserved cards:

{ dynamic.reservedCards?.map((data: CardData) => ) }
) }, [dynamic, setState]) const handleClick = (actionSelection: number) => { switch (actionSelection) { case 0: setState((prev) => setStateGetChips(prev)); break; case 1: setState((prev) => setStateBuyCard(prev)); break; case 2: setState((prev) => setStateReserveCard(prev)); break; default: setState((prev) => setStateAwaitAction(prev)); break; } } return (

Name: {player.name} {player.starter && "(round starter)"}

Score: {dynamic && dynamic.points}

Chips:

{ dynamic && Object.entries(dynamic.inventory).map(([key,value]) => { return value > 0 && (

{value}

) })}
{dynamic && cardView}
{dynamic && reservedView}
) }