import { v4 } from 'uuid'; import { CardProps } from '../../util/propTypes'; import { CardData, PlayerCards, ResourceCost } from '../../util/types'; import { useCurrentPlayer } from '../../hooks/useCurrentPlayer'; import { buyCardActions } from '../Player/ActionMethods'; import { hasMaxReserved, reserveCard } from '../Player/ActionMethods/reserveCardActions'; const { buyCard, tooExpensive } = buyCardActions; export default function Card({ data, state, setState, reserved = false, collapsed = false }: CardProps) { const currentPlayer = useCurrentPlayer(state); if (!data || !currentPlayer) return
; const purchaseDisabled = (): boolean => { // TO DO: check whether a card belongs to the current player, // if card is tagged as reserved return tooExpensive(data, state); } return (
{ collapsed ?
: }

{data.gemValue.toUpperCase()}

{ Object.keys(data.resourceCost).map((key: keyof ResourceCost | string) => { // @ts-ignore return (data.resourceCost[key as keyof ResourceCost] > 0) && (

{data.resourceCost[key as keyof ResourceCost]}

) }) }
{ (data.points && data.points > 0) ?

{data.points} {data.points === 1 ? 'point' : 'points'}

: null }
{ (state.actions.buyCard.active || state.actions.reserveCard.active) && (
{ state.actions.buyCard.active && } { !reserved && state.actions.reserveCard.active && }
) }
) }