react-chessboard-ui 1.4.4 → 1.4.6

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.
@@ -2009,6 +2009,22 @@ var correctGrabbingPosByScroll = function correctGrabbingPosByScroll(pos) {
2009
2009
  var correctGrabbingPosForArrow = function correctGrabbingPosForArrow(pos, boardConfig) {
2010
2010
  return [pos[0] * boardConfig.cellSize + (boardConfig.cellSize / 2 - 10), pos[1] * boardConfig.cellSize + boardConfig.cellSize / 2];
2011
2011
  };
2012
+ var createHtmlReversedStateHolder = function createHtmlReversedStateHolder() {
2013
+ if (!window) return;
2014
+ var reversedStateHolder = document.createElement('div');
2015
+ reversedStateHolder.setAttribute('id', 'reversed-state-holder');
2016
+ reversedStateHolder.setAttribute('data-reversed-state', 'false');
2017
+ document.body.append(reversedStateHolder);
2018
+ };
2019
+ var setHtmlReversedStateHolderValue = function setHtmlReversedStateHolderValue(reversed) {
2020
+ if (!window) return;
2021
+ document.getElementById('reversed-state-holder').setAttribute('data-reversed-state', JSON.stringify(reversed));
2022
+ };
2023
+ var getHtmlReversedStateHolderValue = function getHtmlReversedStateHolderValue() {
2024
+ if (!window) return false;
2025
+ var chessboardReversed = document.getElementById('reversed-state-holder') && document.getElementById('reversed-state-holder').getAttribute('data-reversed-state') === 'true';
2026
+ return chessboardReversed;
2027
+ };
2012
2028
 
2013
2029
  var BASE_BOARD_SIZE = 8;
2014
2030
  var ChessBoardCellsLayout = function ChessBoardCellsLayout(_ref) {
@@ -2045,6 +2061,7 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2045
2061
  setActualState(mapCellsToFiguresArray(initialState));
2046
2062
  }, [initialState]);
2047
2063
  useEffect(function () {
2064
+ var chessboardReversed = getHtmlReversedStateHolderValue();
2048
2065
  if (!!change) {
2049
2066
  setActualState(function (prevState) {
2050
2067
  var updatedState = [].concat(prevState);
@@ -2058,11 +2075,28 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2058
2075
  var kingIndex = updatedState.findIndex(function (figure) {
2059
2076
  return figure.color === 'white' && figure.type === 'king';
2060
2077
  });
2078
+ if (chessboardReversed) {
2079
+ if (castlingType === '0-0') {
2080
+ var _rookIndex = updatedState.findIndex(function (figure) {
2081
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2082
+ });
2083
+ updatedState[_rookIndex].position[0] = 4;
2084
+ updatedState[kingIndex].position[0] = 5;
2085
+ return updatedState;
2086
+ }
2087
+ var _rookIndex2 = updatedState.findIndex(function (figure) {
2088
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2089
+ });
2090
+ console.log('WHITE', _rookIndex2);
2091
+ updatedState[_rookIndex2].position[0] = 2;
2092
+ updatedState[kingIndex].position[0] = 1;
2093
+ return updatedState;
2094
+ }
2061
2095
  if (castlingType === '0-0') {
2062
- var _rookIndex = updatedState.findIndex(function (figure) {
2096
+ var _rookIndex3 = updatedState.findIndex(function (figure) {
2063
2097
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2064
2098
  });
2065
- updatedState[_rookIndex].position[0] = 5;
2099
+ updatedState[_rookIndex3].position[0] = 5;
2066
2100
  updatedState[kingIndex].position[0] = 6;
2067
2101
  return updatedState;
2068
2102
  }
@@ -2077,18 +2111,34 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2077
2111
  var _kingIndex = updatedState.findIndex(function (figure) {
2078
2112
  return figure.color === 'black' && figure.type === 'king';
2079
2113
  });
2114
+ if (chessboardReversed) {
2115
+ if (castlingType === '0-0') {
2116
+ var _rookIndex4 = updatedState.findIndex(function (figure) {
2117
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2118
+ });
2119
+ updatedState[_rookIndex4].position[0] = 4;
2120
+ updatedState[_kingIndex].position[0] = 5;
2121
+ return updatedState;
2122
+ }
2123
+ var _rookIndex5 = updatedState.findIndex(function (figure) {
2124
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2125
+ });
2126
+ updatedState[_rookIndex5].position[0] = 2;
2127
+ updatedState[_kingIndex].position[0] = 1;
2128
+ return updatedState;
2129
+ }
2080
2130
  if (castlingType === '0-0') {
2081
- var _rookIndex2 = updatedState.findIndex(function (figure) {
2131
+ var _rookIndex6 = updatedState.findIndex(function (figure) {
2082
2132
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2083
2133
  });
2084
- updatedState[_rookIndex2].position[0] = 5;
2134
+ updatedState[_rookIndex6].position[0] = 5;
2085
2135
  updatedState[_kingIndex].position[0] = 6;
2086
2136
  return updatedState;
2087
2137
  }
2088
- var _rookIndex3 = updatedState.findIndex(function (figure) {
2138
+ var _rookIndex7 = updatedState.findIndex(function (figure) {
2089
2139
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2090
2140
  });
2091
- updatedState[_rookIndex3].position[0] = 3;
2141
+ updatedState[_rookIndex7].position[0] = 3;
2092
2142
  updatedState[_kingIndex].position[0] = 2;
2093
2143
  return updatedState;
2094
2144
  }
@@ -2428,7 +2478,8 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2428
2478
  return {};
2429
2479
  }
2430
2480
  var colorFEN = currentColor === 'white' ? 'black' : 'white';
2431
- var FEN = stateToFEN(updatedCells, colorFEN);
2481
+ var reversedUpdatedCells = boardReversed ? JSChessEngine.reverseChessBoard(updatedCells) : updatedCells;
2482
+ var FEN = stateToFEN(reversedUpdatedCells, colorFEN);
2432
2483
  var moveData = {
2433
2484
  figure: figure,
2434
2485
  from: from,
@@ -2483,7 +2534,8 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
2483
2534
  return {};
2484
2535
  }
2485
2536
  var colorFEN = currentColor === 'white' ? 'black' : 'white';
2486
- var FEN = stateToFEN(updatedCells, colorFEN);
2537
+ var reversedUpdatedCells = boardReversed ? JSChessEngine.reverseChessBoard(updatedCells) : updatedCells;
2538
+ var FEN = stateToFEN(reversedUpdatedCells, colorFEN);
2487
2539
  var moveData = {
2488
2540
  figure: figure,
2489
2541
  from: from,
@@ -2943,11 +2995,15 @@ var ChessBoard = function ChessBoard(props) {
2943
2995
  setCurrentColor(currentColor);
2944
2996
  setBoardReversed(reversed);
2945
2997
  };
2998
+ useEffect(function () {
2999
+ createHtmlReversedStateHolder();
3000
+ }, []);
2946
3001
  useEffect(function () {
2947
3002
  setPlayerColor(playerColor);
2948
3003
  }, [playerColor]);
2949
3004
  useEffect(function () {
2950
3005
  handleUpdateFEN(FEN, reversed);
3006
+ setHtmlReversedStateHolderValue(reversed);
2951
3007
  }, [FEN, reversed]);
2952
3008
  useEffect(function () {
2953
3009
  if (!change) return;