react-chessboard-ui 1.1.2 → 1.2.1
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.
- package/dist/ChessBoard/ChessBoardFiguresLayout.d.ts +1 -0
- package/dist/ChessBoard/useChessBoardInteractive.d.ts +2 -0
- package/dist/JSChessEngine/JSChessEngine.d.ts +1 -1
- package/dist/index.js +44 -9
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +44 -9
- package/dist/index.modern.js.map +1 -1
- package/package.json +2 -3
|
@@ -9,6 +9,7 @@ declare type UseChessBoardInteractiveProps = {
|
|
|
9
9
|
export declare const useChessBoardInteractive: (props: UseChessBoardInteractiveProps) => {
|
|
10
10
|
fromPos: CellPos;
|
|
11
11
|
newMove: ChangeMove;
|
|
12
|
+
animated: boolean;
|
|
12
13
|
boardConfig: ChessBoardConfig;
|
|
13
14
|
markedCells: CellPos[];
|
|
14
15
|
grabbingPos: CellPos;
|
|
@@ -24,6 +25,7 @@ export declare const useChessBoardInteractive: (props: UseChessBoardInteractiveP
|
|
|
24
25
|
showFigurePicker: boolean;
|
|
25
26
|
markCell: (cellPos: CellPos) => void;
|
|
26
27
|
setNewMove: import("react").Dispatch<import("react").SetStateAction<ChangeMove>>;
|
|
28
|
+
setAnimated: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
27
29
|
handleClick: (cellPos: CellPos) => void;
|
|
28
30
|
clearFromPos: () => void;
|
|
29
31
|
handleGrabEnd: (cellPos: CellPos, withTransition?: boolean) => void;
|
|
@@ -89,7 +89,7 @@ export declare class JSChessEngine {
|
|
|
89
89
|
* @param moveData данные хода
|
|
90
90
|
* @param boardSize размер доски
|
|
91
91
|
*/
|
|
92
|
-
static reverseMove: (moveData: MoveData, boardSize
|
|
92
|
+
static reverseMove: (moveData: MoveData, boardSize?: number) => MoveData;
|
|
93
93
|
/**
|
|
94
94
|
* Возвращет перевернутое значение для начала и конца хода фигуры
|
|
95
95
|
* Использовать при подсветке хода если доска перевернута
|
package/dist/index.js
CHANGED
|
@@ -117,6 +117,9 @@ JSChessEngine.reverseChessBoard = function (state) {
|
|
|
117
117
|
});
|
|
118
118
|
};
|
|
119
119
|
JSChessEngine.reverseMove = function (moveData, boardSize) {
|
|
120
|
+
if (boardSize === void 0) {
|
|
121
|
+
boardSize = 8;
|
|
122
|
+
}
|
|
120
123
|
var from = moveData.from,
|
|
121
124
|
to = moveData.to,
|
|
122
125
|
figure = moveData.figure,
|
|
@@ -2031,7 +2034,8 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
|
|
|
2031
2034
|
var initialState = props.initialState,
|
|
2032
2035
|
change = props.change,
|
|
2033
2036
|
reversed = props.reversed,
|
|
2034
|
-
boardConfig = props.boardConfig
|
|
2037
|
+
boardConfig = props.boardConfig,
|
|
2038
|
+
animated = props.animated;
|
|
2035
2039
|
var _useState = React.useState([]),
|
|
2036
2040
|
actualState = _useState[0],
|
|
2037
2041
|
setActualState = _useState[1];
|
|
@@ -2131,11 +2135,11 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
|
|
|
2131
2135
|
style: {
|
|
2132
2136
|
top: boardConfig.cellSize * figure.position[1] + "px",
|
|
2133
2137
|
left: boardConfig.cellSize * figure.position[0] + "px",
|
|
2134
|
-
transition: !!change &&
|
|
2138
|
+
transition: !!change && animated ? 'all .15s ease-out' : 'none',
|
|
2135
2139
|
width: boardConfig.cellSize,
|
|
2136
2140
|
height: boardConfig.cellSize
|
|
2137
2141
|
}
|
|
2138
|
-
}, boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2142
|
+
}, boardConfig.piecesMap[getFigureCSS(figure)] && boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2139
2143
|
}));
|
|
2140
2144
|
};
|
|
2141
2145
|
|
|
@@ -2293,6 +2297,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2293
2297
|
var _useState21 = React.useState([-1, -1]),
|
|
2294
2298
|
targetPos = _useState21[0],
|
|
2295
2299
|
setTargetPos = _useState21[1];
|
|
2300
|
+
var _useState22 = React.useState(false),
|
|
2301
|
+
animated = _useState22[0],
|
|
2302
|
+
setAnimated = _useState22[1];
|
|
2296
2303
|
var clearFromPos = function clearFromPos() {
|
|
2297
2304
|
return setFromPos([-1, -1]);
|
|
2298
2305
|
};
|
|
@@ -2509,6 +2516,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2509
2516
|
return;
|
|
2510
2517
|
}
|
|
2511
2518
|
onChange(moveData);
|
|
2519
|
+
setAnimated(withTransition);
|
|
2512
2520
|
setNewMove({
|
|
2513
2521
|
move: moveData,
|
|
2514
2522
|
withTransition: withTransition,
|
|
@@ -2532,6 +2540,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2532
2540
|
attackedPos = _moveFigureByClick.attackedPos;
|
|
2533
2541
|
if (!moveData) return;
|
|
2534
2542
|
onChange(moveData);
|
|
2543
|
+
setAnimated(withTransition);
|
|
2535
2544
|
setNewMove({
|
|
2536
2545
|
move: moveData,
|
|
2537
2546
|
withTransition: withTransition,
|
|
@@ -2629,6 +2638,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2629
2638
|
return {
|
|
2630
2639
|
fromPos: fromPos,
|
|
2631
2640
|
newMove: newMove,
|
|
2641
|
+
animated: animated,
|
|
2632
2642
|
boardConfig: boardConfig,
|
|
2633
2643
|
markedCells: markedCells,
|
|
2634
2644
|
grabbingPos: grabbingPos,
|
|
@@ -2644,6 +2654,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2644
2654
|
showFigurePicker: showFigurePicker,
|
|
2645
2655
|
markCell: markCell,
|
|
2646
2656
|
setNewMove: setNewMove,
|
|
2657
|
+
setAnimated: setAnimated,
|
|
2647
2658
|
handleClick: handleClick,
|
|
2648
2659
|
clearFromPos: clearFromPos,
|
|
2649
2660
|
handleGrabEnd: handleGrabEnd,
|
|
@@ -2822,6 +2833,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2822
2833
|
}),
|
|
2823
2834
|
fromPos = _useChessBoardInterac.fromPos,
|
|
2824
2835
|
newMove = _useChessBoardInterac.newMove,
|
|
2836
|
+
animated = _useChessBoardInterac.animated,
|
|
2825
2837
|
boardConfig = _useChessBoardInterac.boardConfig,
|
|
2826
2838
|
markedCells = _useChessBoardInterac.markedCells,
|
|
2827
2839
|
grabbingPos = _useChessBoardInterac.grabbingPos,
|
|
@@ -2835,6 +2847,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2835
2847
|
showFigurePicker = _useChessBoardInterac.showFigurePicker,
|
|
2836
2848
|
markCell = _useChessBoardInterac.markCell,
|
|
2837
2849
|
setNewMove = _useChessBoardInterac.setNewMove,
|
|
2850
|
+
setAnimated = _useChessBoardInterac.setAnimated,
|
|
2838
2851
|
handleClick = _useChessBoardInterac.handleClick,
|
|
2839
2852
|
handleGrabEnd = _useChessBoardInterac.handleGrabEnd,
|
|
2840
2853
|
handleGrabbing = _useChessBoardInterac.handleGrabbing,
|
|
@@ -2849,22 +2862,43 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2849
2862
|
handleGrabbingCell = _useChessBoardInterac.handleGrabbingCell,
|
|
2850
2863
|
getHasCheckByCellPos = _useChessBoardInterac.getHasCheckByCellPos,
|
|
2851
2864
|
handleSelectFigurePicker = _useChessBoardInterac.handleSelectFigurePicker;
|
|
2852
|
-
|
|
2853
|
-
setPlayerColor(playerColor);
|
|
2854
|
-
}, [playerColor]);
|
|
2855
|
-
React.useEffect(function () {
|
|
2865
|
+
var handleUpdateFEN = function handleUpdateFEN(FEN) {
|
|
2856
2866
|
var _FENtoGameState = FENtoGameState(FEN),
|
|
2857
2867
|
boardState = _FENtoGameState.boardState,
|
|
2858
2868
|
currentColor = _FENtoGameState.currentColor;
|
|
2859
2869
|
setInitialState(boardState);
|
|
2860
2870
|
setActualState(boardState);
|
|
2861
2871
|
setCurrentColor(currentColor);
|
|
2872
|
+
};
|
|
2873
|
+
React.useEffect(function () {
|
|
2874
|
+
setPlayerColor(playerColor);
|
|
2875
|
+
}, [playerColor]);
|
|
2876
|
+
React.useEffect(function () {
|
|
2877
|
+
handleUpdateFEN(FEN);
|
|
2862
2878
|
}, [FEN]);
|
|
2863
2879
|
React.useEffect(function () {
|
|
2864
2880
|
if (reversed) reverseChessBoard();
|
|
2865
2881
|
}, [reversed]);
|
|
2866
2882
|
React.useEffect(function () {
|
|
2867
|
-
|
|
2883
|
+
if (!change) return;
|
|
2884
|
+
var updatedChange = _extends({}, change, {
|
|
2885
|
+
move: reversed ? JSChessEngine.reverseMove(change.move) : change.move
|
|
2886
|
+
});
|
|
2887
|
+
if (change.withTransition) {
|
|
2888
|
+
setAnimated(true);
|
|
2889
|
+
setTimeout(function () {
|
|
2890
|
+
setNewMove(updatedChange);
|
|
2891
|
+
}, 10);
|
|
2892
|
+
setTimeout(function () {
|
|
2893
|
+
setAnimated(false);
|
|
2894
|
+
}, 160);
|
|
2895
|
+
setTimeout(function () {
|
|
2896
|
+
handleUpdateFEN(updatedChange.move.FEN);
|
|
2897
|
+
}, 170);
|
|
2898
|
+
} else {
|
|
2899
|
+
setNewMove(updatedChange);
|
|
2900
|
+
handleUpdateFEN(updatedChange.move.FEN);
|
|
2901
|
+
}
|
|
2868
2902
|
}, [change]);
|
|
2869
2903
|
return React__default.createElement("div", {
|
|
2870
2904
|
className: styles.chessBoard
|
|
@@ -2874,7 +2908,8 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2874
2908
|
initialState: initialState,
|
|
2875
2909
|
change: newMove,
|
|
2876
2910
|
reversed: reversed,
|
|
2877
|
-
boardConfig: boardConfig
|
|
2911
|
+
boardConfig: boardConfig,
|
|
2912
|
+
animated: animated
|
|
2878
2913
|
}), React__default.createElement(ChessBoardInteractiveLayout, {
|
|
2879
2914
|
selectedPos: fromPos,
|
|
2880
2915
|
possibleMoves: possibleMoves,
|