react-chessboard-ui 1.2.0 → 1.3.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.
- package/dist/ChessBoard/useChessBoardInteractive.d.ts +11 -0
- package/dist/index.js +82 -29
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +82 -29
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -125,7 +125,8 @@ JSChessEngine.reverseMove = function (moveData, boardSize) {
|
|
|
125
125
|
figure: figure,
|
|
126
126
|
from: [boardSize - (from[0] + 1), boardSize - (from[1] + 1)],
|
|
127
127
|
to: [boardSize - (to[0] + 1), boardSize - (to[1] + 1)],
|
|
128
|
-
type: type
|
|
128
|
+
type: type,
|
|
129
|
+
FEN: moveData.FEN
|
|
129
130
|
};
|
|
130
131
|
return reversedMove;
|
|
131
132
|
};
|
|
@@ -2136,7 +2137,7 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
|
|
|
2136
2137
|
width: boardConfig.cellSize,
|
|
2137
2138
|
height: boardConfig.cellSize
|
|
2138
2139
|
}
|
|
2139
|
-
}, boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2140
|
+
}, boardConfig.piecesMap[getFigureCSS(figure)] && boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2140
2141
|
}));
|
|
2141
2142
|
};
|
|
2142
2143
|
|
|
@@ -2294,6 +2295,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2294
2295
|
var _useState21 = useState([-1, -1]),
|
|
2295
2296
|
targetPos = _useState21[0],
|
|
2296
2297
|
setTargetPos = _useState21[1];
|
|
2298
|
+
var _useState22 = useState(false),
|
|
2299
|
+
animated = _useState22[0],
|
|
2300
|
+
setAnimated = _useState22[1];
|
|
2297
2301
|
var clearFromPos = function clearFromPos() {
|
|
2298
2302
|
return setFromPos([-1, -1]);
|
|
2299
2303
|
};
|
|
@@ -2438,6 +2442,20 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2438
2442
|
attackedPos: attackedPos
|
|
2439
2443
|
};
|
|
2440
2444
|
};
|
|
2445
|
+
var moveFigureByChange = function moveFigureByChange(change) {
|
|
2446
|
+
var _change$move = change.move,
|
|
2447
|
+
from = _change$move.from,
|
|
2448
|
+
to = _change$move.to,
|
|
2449
|
+
figure = _change$move.figure;
|
|
2450
|
+
var _JSChessEngine$change2 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2451
|
+
updatedCells = _JSChessEngine$change2.updatedCells;
|
|
2452
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2453
|
+
setLinesWithCheck(linesCheck);
|
|
2454
|
+
var updatedChange = _extends({}, change, {
|
|
2455
|
+
move: boardReversed ? JSChessEngine.reverseMove(change.move) : change.move
|
|
2456
|
+
});
|
|
2457
|
+
setNewMove(updatedChange);
|
|
2458
|
+
};
|
|
2441
2459
|
var moveFigureByClick = function moveFigureByClick(from, to, figure) {
|
|
2442
2460
|
if (!!playerColor && currentColor !== playerColor) {
|
|
2443
2461
|
cleanAllForFigure();
|
|
@@ -2449,9 +2467,40 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2449
2467
|
var inNextMoves = checkPositionsHas(clickPossibleMoves, to);
|
|
2450
2468
|
var conditionForDoMove = (to[0] !== from[0] || to[1] !== from[1]) && inNextMoves;
|
|
2451
2469
|
if (!conditionForDoMove) return {};
|
|
2452
|
-
var _JSChessEngine$
|
|
2453
|
-
updatedCells = _JSChessEngine$
|
|
2454
|
-
attackedPos = _JSChessEngine$
|
|
2470
|
+
var _JSChessEngine$change3 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2471
|
+
updatedCells = _JSChessEngine$change3.updatedCells,
|
|
2472
|
+
attackedPos = _JSChessEngine$change3.attackedPos;
|
|
2473
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2474
|
+
setLinesWithCheck(linesCheck);
|
|
2475
|
+
setActualState(updatedCells);
|
|
2476
|
+
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2477
|
+
setTargetPos(to);
|
|
2478
|
+
setShowFigurePicker(true);
|
|
2479
|
+
return {};
|
|
2480
|
+
}
|
|
2481
|
+
var colorFEN = currentColor === 'white' ? 'black' : 'white';
|
|
2482
|
+
var FEN = stateToFEN(updatedCells, colorFEN);
|
|
2483
|
+
var moveData = {
|
|
2484
|
+
figure: figure,
|
|
2485
|
+
from: from,
|
|
2486
|
+
to: to,
|
|
2487
|
+
FEN: FEN
|
|
2488
|
+
};
|
|
2489
|
+
toggleCurrentColor();
|
|
2490
|
+
setClickedFigure(undefined);
|
|
2491
|
+
clearClickedPos();
|
|
2492
|
+
clearGrabbingPos();
|
|
2493
|
+
clearArrows();
|
|
2494
|
+
clearMarkedCells();
|
|
2495
|
+
return {
|
|
2496
|
+
moveData: moveData,
|
|
2497
|
+
attackedPos: attackedPos
|
|
2498
|
+
};
|
|
2499
|
+
};
|
|
2500
|
+
var moveFigureByExternalChange = function moveFigureByExternalChange(from, to, figure) {
|
|
2501
|
+
var _JSChessEngine$change4 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2502
|
+
updatedCells = _JSChessEngine$change4.updatedCells,
|
|
2503
|
+
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2455
2504
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2456
2505
|
setLinesWithCheck(linesCheck);
|
|
2457
2506
|
setActualState(updatedCells);
|
|
@@ -2510,6 +2559,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2510
2559
|
return;
|
|
2511
2560
|
}
|
|
2512
2561
|
onChange(moveData);
|
|
2562
|
+
setAnimated(withTransition);
|
|
2513
2563
|
setNewMove({
|
|
2514
2564
|
move: moveData,
|
|
2515
2565
|
withTransition: withTransition,
|
|
@@ -2518,6 +2568,21 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2518
2568
|
clearGrabbingPos();
|
|
2519
2569
|
clearPossibleMoves();
|
|
2520
2570
|
};
|
|
2571
|
+
var handleChangeFromExternal = function handleChangeFromExternal(moveData) {
|
|
2572
|
+
var _moveFigureByExternal = moveFigureByExternalChange(moveData.from, moveData.to, moveData.figure),
|
|
2573
|
+
attackedPos = _moveFigureByExternal.attackedPos;
|
|
2574
|
+
onChange(moveData);
|
|
2575
|
+
setAnimated(true);
|
|
2576
|
+
var change = {
|
|
2577
|
+
move: moveData,
|
|
2578
|
+
withTransition: true,
|
|
2579
|
+
attackedPos: attackedPos,
|
|
2580
|
+
transformTo: moveData.type === 'transform' ? moveData.figure : undefined
|
|
2581
|
+
};
|
|
2582
|
+
setNewMove(change);
|
|
2583
|
+
clearClickedPos();
|
|
2584
|
+
clearClickPossibleMoves();
|
|
2585
|
+
};
|
|
2521
2586
|
var handleClickForTargetCell = function handleClickForTargetCell(cellPos, withTransition) {
|
|
2522
2587
|
if (withTransition === void 0) {
|
|
2523
2588
|
withTransition = false;
|
|
@@ -2533,6 +2598,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2533
2598
|
attackedPos = _moveFigureByClick.attackedPos;
|
|
2534
2599
|
if (!moveData) return;
|
|
2535
2600
|
onChange(moveData);
|
|
2601
|
+
setAnimated(withTransition);
|
|
2536
2602
|
setNewMove({
|
|
2537
2603
|
move: moveData,
|
|
2538
2604
|
withTransition: withTransition,
|
|
@@ -2630,6 +2696,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2630
2696
|
return {
|
|
2631
2697
|
fromPos: fromPos,
|
|
2632
2698
|
newMove: newMove,
|
|
2699
|
+
animated: animated,
|
|
2633
2700
|
boardConfig: boardConfig,
|
|
2634
2701
|
markedCells: markedCells,
|
|
2635
2702
|
grabbingPos: grabbingPos,
|
|
@@ -2645,6 +2712,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2645
2712
|
showFigurePicker: showFigurePicker,
|
|
2646
2713
|
markCell: markCell,
|
|
2647
2714
|
setNewMove: setNewMove,
|
|
2715
|
+
setAnimated: setAnimated,
|
|
2648
2716
|
handleClick: handleClick,
|
|
2649
2717
|
clearFromPos: clearFromPos,
|
|
2650
2718
|
handleGrabEnd: handleGrabEnd,
|
|
@@ -2659,8 +2727,11 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2659
2727
|
startRenderArrow: startRenderArrow,
|
|
2660
2728
|
reverseChessBoard: reverseChessBoard,
|
|
2661
2729
|
handleGrabbingCell: handleGrabbingCell,
|
|
2730
|
+
moveFigureByChange: moveFigureByChange,
|
|
2662
2731
|
getHasCheckByCellPos: getHasCheckByCellPos,
|
|
2663
|
-
handleSelectFigurePicker: handleSelectFigurePicker
|
|
2732
|
+
handleSelectFigurePicker: handleSelectFigurePicker,
|
|
2733
|
+
handleChangeFromExternal: handleChangeFromExternal,
|
|
2734
|
+
moveFigureByExternalChange: moveFigureByExternalChange
|
|
2664
2735
|
};
|
|
2665
2736
|
};
|
|
2666
2737
|
|
|
@@ -2816,9 +2887,6 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2816
2887
|
reversed = props.reversed,
|
|
2817
2888
|
config = props.config,
|
|
2818
2889
|
playerColor = props.playerColor;
|
|
2819
|
-
var _useState = useState(false),
|
|
2820
|
-
animated = _useState[0],
|
|
2821
|
-
setAnimated = _useState[1];
|
|
2822
2890
|
var _useChessBoardInterac = useChessBoardInteractive({
|
|
2823
2891
|
onChange: onChange,
|
|
2824
2892
|
onEndGame: onEndGame,
|
|
@@ -2826,6 +2894,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2826
2894
|
}),
|
|
2827
2895
|
fromPos = _useChessBoardInterac.fromPos,
|
|
2828
2896
|
newMove = _useChessBoardInterac.newMove,
|
|
2897
|
+
animated = _useChessBoardInterac.animated,
|
|
2829
2898
|
boardConfig = _useChessBoardInterac.boardConfig,
|
|
2830
2899
|
markedCells = _useChessBoardInterac.markedCells,
|
|
2831
2900
|
grabbingPos = _useChessBoardInterac.grabbingPos,
|
|
@@ -2838,7 +2907,6 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2838
2907
|
startArrowCoord = _useChessBoardInterac.startArrowCoord,
|
|
2839
2908
|
showFigurePicker = _useChessBoardInterac.showFigurePicker,
|
|
2840
2909
|
markCell = _useChessBoardInterac.markCell,
|
|
2841
|
-
setNewMove = _useChessBoardInterac.setNewMove,
|
|
2842
2910
|
handleClick = _useChessBoardInterac.handleClick,
|
|
2843
2911
|
handleGrabEnd = _useChessBoardInterac.handleGrabEnd,
|
|
2844
2912
|
handleGrabbing = _useChessBoardInterac.handleGrabbing,
|
|
@@ -2852,7 +2920,8 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2852
2920
|
reverseChessBoard = _useChessBoardInterac.reverseChessBoard,
|
|
2853
2921
|
handleGrabbingCell = _useChessBoardInterac.handleGrabbingCell,
|
|
2854
2922
|
getHasCheckByCellPos = _useChessBoardInterac.getHasCheckByCellPos,
|
|
2855
|
-
handleSelectFigurePicker = _useChessBoardInterac.handleSelectFigurePicker
|
|
2923
|
+
handleSelectFigurePicker = _useChessBoardInterac.handleSelectFigurePicker,
|
|
2924
|
+
handleChangeFromExternal = _useChessBoardInterac.handleChangeFromExternal;
|
|
2856
2925
|
var handleUpdateFEN = function handleUpdateFEN(FEN) {
|
|
2857
2926
|
var _FENtoGameState = FENtoGameState(FEN),
|
|
2858
2927
|
boardState = _FENtoGameState.boardState,
|
|
@@ -2872,24 +2941,8 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2872
2941
|
}, [reversed]);
|
|
2873
2942
|
useEffect(function () {
|
|
2874
2943
|
if (!change) return;
|
|
2875
|
-
var
|
|
2876
|
-
|
|
2877
|
-
});
|
|
2878
|
-
if (change.withTransition) {
|
|
2879
|
-
setAnimated(true);
|
|
2880
|
-
setTimeout(function () {
|
|
2881
|
-
setNewMove(updatedChange);
|
|
2882
|
-
}, 10);
|
|
2883
|
-
setTimeout(function () {
|
|
2884
|
-
setAnimated(false);
|
|
2885
|
-
}, 160);
|
|
2886
|
-
setTimeout(function () {
|
|
2887
|
-
handleUpdateFEN(updatedChange.move.FEN);
|
|
2888
|
-
}, 170);
|
|
2889
|
-
} else {
|
|
2890
|
-
setNewMove(updatedChange);
|
|
2891
|
-
handleUpdateFEN(updatedChange.move.FEN);
|
|
2892
|
-
}
|
|
2944
|
+
var reversedChange = reversed ? JSChessEngine.reverseMove(change.move) : change.move;
|
|
2945
|
+
handleChangeFromExternal(reversedChange);
|
|
2893
2946
|
}, [change]);
|
|
2894
2947
|
return React.createElement("div", {
|
|
2895
2948
|
className: styles.chessBoard
|