All files / repo/src/shared/utils/handlers handleMismatchPair.ts

100% Statements 11/11
100% Branches 2/2
100% Functions 2/2
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  1x                 1x 1x   1x   1x   1x 1x   1x   1x 1x 1x  
import type { Tile } from '@/components/GameCanvas/GameCanvas.types';
import { useGameStore } from '@/stores/useGameStore';
 
interface HandleMismatchPairOptions {
  playFail: () => Promise<void>;
  drawBoard: () => void;
  onMismatch?: (a: Tile, b: Tile) => void;
  unlock: () => void;
}
 
export async function handleMismatchPair(a: Tile, b: Tile, opts: HandleMismatchPairOptions) {
  await opts.playFail();
 
  if (opts.onMismatch) opts.onMismatch(a, b);
 
  await new Promise((resolve) => setTimeout(resolve, 1000));
 
  a.flipped = false;
  b.flipped = false;
 
  opts.drawBoard();
 
  opts.unlock();
  useGameStore().incrementMismatch(a, b);
}