react-chessboard-ui 1.4.5 → 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.
@@ -58,3 +58,18 @@ export declare const correctGrabbingPosByScroll: (pos: CellPos) => CellPos;
58
58
  * Корректирует указатели стрелки
59
59
  */
60
60
  export declare const correctGrabbingPosForArrow: (pos: CellPos, boardConfig: ChessBoardConfig) => CellPos;
61
+ /**
62
+ * Создание тэга для хранение состояния
63
+ * разворота доски
64
+ *
65
+ * На момент создания, есть проблема с заданием
66
+ * разворота доски для слоя фигур - происходит двойной
67
+ * рендер. Из-за этого доска возврщает в тоже положение
68
+ * при reversed = true, но состояние игры разворачивается
69
+ *
70
+ * Поэтому принято решение вынести хранение и задание
71
+ * разворота доски на уровень data-атрибутов html
72
+ */
73
+ export declare const createHtmlReversedStateHolder: () => void;
74
+ export declare const setHtmlReversedStateHolderValue: (reversed: boolean) => void;
75
+ export declare const getHtmlReversedStateHolderValue: () => boolean;
package/dist/index.js CHANGED
@@ -2012,6 +2012,22 @@ var correctGrabbingPosByScroll = function correctGrabbingPosByScroll(pos) {
2012
2012
  var correctGrabbingPosForArrow = function correctGrabbingPosForArrow(pos, boardConfig) {
2013
2013
  return [pos[0] * boardConfig.cellSize + (boardConfig.cellSize / 2 - 10), pos[1] * boardConfig.cellSize + boardConfig.cellSize / 2];
2014
2014
  };
2015
+ var createHtmlReversedStateHolder = function createHtmlReversedStateHolder() {
2016
+ if (!window) return;
2017
+ var reversedStateHolder = document.createElement('div');
2018
+ reversedStateHolder.setAttribute('id', 'reversed-state-holder');
2019
+ reversedStateHolder.setAttribute('data-reversed-state', 'false');
2020
+ document.body.append(reversedStateHolder);
2021
+ };
2022
+ var setHtmlReversedStateHolderValue = function setHtmlReversedStateHolderValue(reversed) {
2023
+ if (!window) return;
2024
+ document.getElementById('reversed-state-holder').setAttribute('data-reversed-state', JSON.stringify(reversed));
2025
+ };
2026
+ var getHtmlReversedStateHolderValue = function getHtmlReversedStateHolderValue() {
2027
+ if (!window) return false;
2028
+ var chessboardReversed = document.getElementById('reversed-state-holder') && document.getElementById('reversed-state-holder').getAttribute('data-reversed-state') === 'true';
2029
+ return chessboardReversed;
2030
+ };
2015
2031
 
2016
2032
  var BASE_BOARD_SIZE = 8;
2017
2033
  var ChessBoardCellsLayout = function ChessBoardCellsLayout(_ref) {
@@ -2048,6 +2064,7 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2048
2064
  setActualState(mapCellsToFiguresArray(initialState));
2049
2065
  }, [initialState]);
2050
2066
  React.useEffect(function () {
2067
+ var chessboardReversed = getHtmlReversedStateHolderValue();
2051
2068
  if (!!change) {
2052
2069
  setActualState(function (prevState) {
2053
2070
  var updatedState = [].concat(prevState);
@@ -2061,11 +2078,28 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2061
2078
  var kingIndex = updatedState.findIndex(function (figure) {
2062
2079
  return figure.color === 'white' && figure.type === 'king';
2063
2080
  });
2081
+ if (chessboardReversed) {
2082
+ if (castlingType === '0-0') {
2083
+ var _rookIndex = updatedState.findIndex(function (figure) {
2084
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2085
+ });
2086
+ updatedState[_rookIndex].position[0] = 4;
2087
+ updatedState[kingIndex].position[0] = 5;
2088
+ return updatedState;
2089
+ }
2090
+ var _rookIndex2 = updatedState.findIndex(function (figure) {
2091
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2092
+ });
2093
+ console.log('WHITE', _rookIndex2);
2094
+ updatedState[_rookIndex2].position[0] = 2;
2095
+ updatedState[kingIndex].position[0] = 1;
2096
+ return updatedState;
2097
+ }
2064
2098
  if (castlingType === '0-0') {
2065
- var _rookIndex = updatedState.findIndex(function (figure) {
2099
+ var _rookIndex3 = updatedState.findIndex(function (figure) {
2066
2100
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2067
2101
  });
2068
- updatedState[_rookIndex].position[0] = 5;
2102
+ updatedState[_rookIndex3].position[0] = 5;
2069
2103
  updatedState[kingIndex].position[0] = 6;
2070
2104
  return updatedState;
2071
2105
  }
@@ -2080,18 +2114,34 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
2080
2114
  var _kingIndex = updatedState.findIndex(function (figure) {
2081
2115
  return figure.color === 'black' && figure.type === 'king';
2082
2116
  });
2117
+ if (chessboardReversed) {
2118
+ if (castlingType === '0-0') {
2119
+ var _rookIndex4 = updatedState.findIndex(function (figure) {
2120
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2121
+ });
2122
+ updatedState[_rookIndex4].position[0] = 4;
2123
+ updatedState[_kingIndex].position[0] = 5;
2124
+ return updatedState;
2125
+ }
2126
+ var _rookIndex5 = updatedState.findIndex(function (figure) {
2127
+ return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2128
+ });
2129
+ updatedState[_rookIndex5].position[0] = 2;
2130
+ updatedState[_kingIndex].position[0] = 1;
2131
+ return updatedState;
2132
+ }
2083
2133
  if (castlingType === '0-0') {
2084
- var _rookIndex2 = updatedState.findIndex(function (figure) {
2134
+ var _rookIndex6 = updatedState.findIndex(function (figure) {
2085
2135
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 7;
2086
2136
  });
2087
- updatedState[_rookIndex2].position[0] = 5;
2137
+ updatedState[_rookIndex6].position[0] = 5;
2088
2138
  updatedState[_kingIndex].position[0] = 6;
2089
2139
  return updatedState;
2090
2140
  }
2091
- var _rookIndex3 = updatedState.findIndex(function (figure) {
2141
+ var _rookIndex7 = updatedState.findIndex(function (figure) {
2092
2142
  return figure.color === color && figure.type === 'rook' && figure.position[0] === 0;
2093
2143
  });
2094
- updatedState[_rookIndex3].position[0] = 3;
2144
+ updatedState[_rookIndex7].position[0] = 3;
2095
2145
  updatedState[_kingIndex].position[0] = 2;
2096
2146
  return updatedState;
2097
2147
  }
@@ -2948,11 +2998,15 @@ var ChessBoard = function ChessBoard(props) {
2948
2998
  setCurrentColor(currentColor);
2949
2999
  setBoardReversed(reversed);
2950
3000
  };
3001
+ React.useEffect(function () {
3002
+ createHtmlReversedStateHolder();
3003
+ }, []);
2951
3004
  React.useEffect(function () {
2952
3005
  setPlayerColor(playerColor);
2953
3006
  }, [playerColor]);
2954
3007
  React.useEffect(function () {
2955
3008
  handleUpdateFEN(FEN, reversed);
3009
+ setHtmlReversedStateHolderValue(reversed);
2956
3010
  }, [FEN, reversed]);
2957
3011
  React.useEffect(function () {
2958
3012
  if (!change) return;