react-chessboard-ui 2.2.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -584,7 +584,7 @@ JSChessEngine.checkPossiblePawnMoveToPos = function (state, pos, target, pawnCol
584
584
  case 'default':
585
585
  return !JSChessEngine.hasFigure(state, target.pos);
586
586
  case 'attack':
587
- return JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.hasFigure(state, target.pos) && JSChessEngine.checkEnemy(state, pos, target.pos) && !JSChessEngine.checkEnemyKing(state, pos, target.pos) || JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.checkBeatedCell(state, target.pos);
587
+ return JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.hasFigure(state, target.pos) && JSChessEngine.checkEnemy(state, pos, target.pos) && !JSChessEngine.checkEnemyKing(state, pos, target.pos) || JSChessEngine.checkInBorderBoard(state, target.pos) && JSChessEngine.checkBeatedCell(state, target.pos) && state[target.pos[1]][target.pos[0]].beatedFor !== pawnColor;
588
588
  }
589
589
  };
590
590
  JSChessEngine.calcPawnMoves = function (state, figurePos, revese, onCheckPossible) {
@@ -966,7 +966,8 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
966
966
  attackedPos = [i, j];
967
967
  return {
968
968
  figure: undefined,
969
- beated: false
969
+ beated: false,
970
+ beatedFor: undefined
970
971
  };
971
972
  }
972
973
  if (currentFigure.type === 'pawn') {
@@ -975,13 +976,15 @@ JSChessEngine.changeState = function (state, currentFigure, targetPos, prevPos,
975
976
  if (diff > 0 && j === targetPos[1] - 1 && targetPos[0] === i || diff < 0 && j === targetPos[1] + 1 && targetPos[0] === i) {
976
977
  return {
977
978
  figure: undefined,
978
- beated: true
979
+ beated: true,
980
+ beatedFor: currentFigure.color
979
981
  };
980
982
  }
981
983
  }
982
984
  }
983
985
  return _extends({}, cell, {
984
- beated: cell.beated ? false : cell.beated
986
+ beated: cell.beated ? false : cell.beated,
987
+ beatedFor: cell.beated ? undefined : cell.beatedFor
985
988
  });
986
989
  });
987
990
  });
@@ -2433,8 +2436,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2433
2436
  return !prevReversed;
2434
2437
  });
2435
2438
  };
2436
- var selectFigureFrom = function selectFigureFrom(cellPos) {
2437
- var cell = actualState[cellPos[1]][cellPos[0]];
2439
+ var selectFigureFrom = function selectFigureFrom(cellPos, extActualState) {
2440
+ var nowState = extActualState || actualState;
2441
+ var cell = nowState[cellPos[1]][cellPos[0]];
2438
2442
  if (!cell.figure) {
2439
2443
  cleanAllForFigure();
2440
2444
  return {
@@ -2457,7 +2461,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2457
2461
  nextMoves: []
2458
2462
  };
2459
2463
  }
2460
- var nextMoves = JSChessEngine.getNextMoves(actualState, cellPos, linesWithCheck, boardReversed);
2464
+ var nextMoves = JSChessEngine.getNextMoves(nowState, cellPos, linesWithCheck, boardReversed);
2461
2465
  return {
2462
2466
  figure: cell.figure,
2463
2467
  nextMoves: nextMoves
@@ -2586,6 +2590,10 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2586
2590
  attackedPos = _JSChessEngine$change4.attackedPos;
2587
2591
  var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
2588
2592
  setLinesWithCheck(linesCheck);
2593
+ if (fromPos[0] !== -1) {
2594
+ var nextMoves = JSChessEngine.getNextMoves(updatedCells, fromPos, linesCheck, boardReversed);
2595
+ setPossibleMoves(nextMoves);
2596
+ }
2589
2597
  setActualState(updatedCells);
2590
2598
  if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
2591
2599
  setTargetPos(to);
@@ -2603,7 +2611,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2603
2611
  toggleCurrentColor();
2604
2612
  setClickedFigure(undefined);
2605
2613
  clearClickedPos();
2606
- clearGrabbingPos();
2607
2614
  clearArrows();
2608
2615
  clearMarkedCells();
2609
2616
  return {
@@ -2668,9 +2675,6 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2668
2675
  setNewMove(change);
2669
2676
  setMovesTrail([moveData.from, moveData.to]);
2670
2677
  clearClickedPos();
2671
- setHoldedFigure(undefined);
2672
- clearFromPos();
2673
- clearPossibleMoves();
2674
2678
  clearClickPossibleMoves();
2675
2679
  };
2676
2680
  var handleClickForTargetCell = function handleClickForTargetCell(cellPos, withTransition) {