Skip to content

Flip multiplos cards at same time in - [solving react interview questions] #8

Open
@pedrolgcs

Description

@pedrolgcs

I discovered a bug where, if the user rapidly clicks on multiple cards, they remain flipped even though no match has actually occurred. However, this issue can be resolved with a simple adjustment in the handleCardClick function. Here’s the updated code snippet:

 function handleCardClick(card: Card) {
   if (card.isFlipped || card.isMatched) return;

   // this line
   const isFlippedMaximumCardsAtSameTime = cards.filter(card => 
     card.isFlipped && !card.isMatched).length === 2;

   if (isFlippedMaximumCardsAtSameTime) return;

   setCards((prevCards) => {
     const newCards = [...prevCards];
     newCards[card.id].isFlipped = true;

     const flippedCards = newCards.filter(
       (c) => c.isFlipped && !c.isMatched,
     );

     if (flippedCards.length === 2) {
       handleCardMatch(flippedCards[0], flippedCards[1]);
     }

     return newCards;
   });
 }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions