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
|
@@ -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;
|
|
@@ -38,7 +40,16 @@ export declare const useChessBoardInteractive: (props: UseChessBoardInteractiveP
|
|
|
38
40
|
startRenderArrow: (pos: CellPos) => void;
|
|
39
41
|
reverseChessBoard: () => void;
|
|
40
42
|
handleGrabbingCell: (cellPos: CellPos) => void;
|
|
43
|
+
moveFigureByChange: (change: ChangeMove) => void;
|
|
41
44
|
getHasCheckByCellPos: ([x, y]: CellPos) => boolean;
|
|
42
45
|
handleSelectFigurePicker: (figure: Figure) => void;
|
|
46
|
+
handleChangeFromExternal: (moveData: MoveData) => void;
|
|
47
|
+
moveFigureByExternalChange: (from: CellPos, to: CellPos, figure: Figure) => {
|
|
48
|
+
moveData?: undefined;
|
|
49
|
+
attackedPos?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
moveData: MoveData;
|
|
52
|
+
attackedPos: CellPos;
|
|
53
|
+
};
|
|
43
54
|
};
|
|
44
55
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -128,7 +128,8 @@ JSChessEngine.reverseMove = function (moveData, boardSize) {
|
|
|
128
128
|
figure: figure,
|
|
129
129
|
from: [boardSize - (from[0] + 1), boardSize - (from[1] + 1)],
|
|
130
130
|
to: [boardSize - (to[0] + 1), boardSize - (to[1] + 1)],
|
|
131
|
-
type: type
|
|
131
|
+
type: type,
|
|
132
|
+
FEN: moveData.FEN
|
|
132
133
|
};
|
|
133
134
|
return reversedMove;
|
|
134
135
|
};
|
|
@@ -2139,7 +2140,7 @@ var ChessBoardFiguresLayout = function ChessBoardFiguresLayout(props) {
|
|
|
2139
2140
|
width: boardConfig.cellSize,
|
|
2140
2141
|
height: boardConfig.cellSize
|
|
2141
2142
|
}
|
|
2142
|
-
}, boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2143
|
+
}, boardConfig.piecesMap[getFigureCSS(figure)] && boardConfig.piecesMap[getFigureCSS(figure)]('80%'));
|
|
2143
2144
|
}));
|
|
2144
2145
|
};
|
|
2145
2146
|
|
|
@@ -2297,6 +2298,9 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2297
2298
|
var _useState21 = React.useState([-1, -1]),
|
|
2298
2299
|
targetPos = _useState21[0],
|
|
2299
2300
|
setTargetPos = _useState21[1];
|
|
2301
|
+
var _useState22 = React.useState(false),
|
|
2302
|
+
animated = _useState22[0],
|
|
2303
|
+
setAnimated = _useState22[1];
|
|
2300
2304
|
var clearFromPos = function clearFromPos() {
|
|
2301
2305
|
return setFromPos([-1, -1]);
|
|
2302
2306
|
};
|
|
@@ -2441,6 +2445,20 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2441
2445
|
attackedPos: attackedPos
|
|
2442
2446
|
};
|
|
2443
2447
|
};
|
|
2448
|
+
var moveFigureByChange = function moveFigureByChange(change) {
|
|
2449
|
+
var _change$move = change.move,
|
|
2450
|
+
from = _change$move.from,
|
|
2451
|
+
to = _change$move.to,
|
|
2452
|
+
figure = _change$move.figure;
|
|
2453
|
+
var _JSChessEngine$change2 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2454
|
+
updatedCells = _JSChessEngine$change2.updatedCells;
|
|
2455
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2456
|
+
setLinesWithCheck(linesCheck);
|
|
2457
|
+
var updatedChange = _extends({}, change, {
|
|
2458
|
+
move: boardReversed ? JSChessEngine.reverseMove(change.move) : change.move
|
|
2459
|
+
});
|
|
2460
|
+
setNewMove(updatedChange);
|
|
2461
|
+
};
|
|
2444
2462
|
var moveFigureByClick = function moveFigureByClick(from, to, figure) {
|
|
2445
2463
|
if (!!playerColor && currentColor !== playerColor) {
|
|
2446
2464
|
cleanAllForFigure();
|
|
@@ -2452,9 +2470,40 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2452
2470
|
var inNextMoves = checkPositionsHas(clickPossibleMoves, to);
|
|
2453
2471
|
var conditionForDoMove = (to[0] !== from[0] || to[1] !== from[1]) && inNextMoves;
|
|
2454
2472
|
if (!conditionForDoMove) return {};
|
|
2455
|
-
var _JSChessEngine$
|
|
2456
|
-
updatedCells = _JSChessEngine$
|
|
2457
|
-
attackedPos = _JSChessEngine$
|
|
2473
|
+
var _JSChessEngine$change3 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2474
|
+
updatedCells = _JSChessEngine$change3.updatedCells,
|
|
2475
|
+
attackedPos = _JSChessEngine$change3.attackedPos;
|
|
2476
|
+
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2477
|
+
setLinesWithCheck(linesCheck);
|
|
2478
|
+
setActualState(updatedCells);
|
|
2479
|
+
if (figure.type === 'pawn' && (to[1] === 0 || to[1] === actualState.length - 1)) {
|
|
2480
|
+
setTargetPos(to);
|
|
2481
|
+
setShowFigurePicker(true);
|
|
2482
|
+
return {};
|
|
2483
|
+
}
|
|
2484
|
+
var colorFEN = currentColor === 'white' ? 'black' : 'white';
|
|
2485
|
+
var FEN = stateToFEN(updatedCells, colorFEN);
|
|
2486
|
+
var moveData = {
|
|
2487
|
+
figure: figure,
|
|
2488
|
+
from: from,
|
|
2489
|
+
to: to,
|
|
2490
|
+
FEN: FEN
|
|
2491
|
+
};
|
|
2492
|
+
toggleCurrentColor();
|
|
2493
|
+
setClickedFigure(undefined);
|
|
2494
|
+
clearClickedPos();
|
|
2495
|
+
clearGrabbingPos();
|
|
2496
|
+
clearArrows();
|
|
2497
|
+
clearMarkedCells();
|
|
2498
|
+
return {
|
|
2499
|
+
moveData: moveData,
|
|
2500
|
+
attackedPos: attackedPos
|
|
2501
|
+
};
|
|
2502
|
+
};
|
|
2503
|
+
var moveFigureByExternalChange = function moveFigureByExternalChange(from, to, figure) {
|
|
2504
|
+
var _JSChessEngine$change4 = JSChessEngine.changeState(actualState, figure, to, from, boardReversed),
|
|
2505
|
+
updatedCells = _JSChessEngine$change4.updatedCells,
|
|
2506
|
+
attackedPos = _JSChessEngine$change4.attackedPos;
|
|
2458
2507
|
var linesCheck = JSChessEngine.getLinesWithCheck(updatedCells, currentColor, boardReversed);
|
|
2459
2508
|
setLinesWithCheck(linesCheck);
|
|
2460
2509
|
setActualState(updatedCells);
|
|
@@ -2513,6 +2562,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2513
2562
|
return;
|
|
2514
2563
|
}
|
|
2515
2564
|
onChange(moveData);
|
|
2565
|
+
setAnimated(withTransition);
|
|
2516
2566
|
setNewMove({
|
|
2517
2567
|
move: moveData,
|
|
2518
2568
|
withTransition: withTransition,
|
|
@@ -2521,6 +2571,21 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2521
2571
|
clearGrabbingPos();
|
|
2522
2572
|
clearPossibleMoves();
|
|
2523
2573
|
};
|
|
2574
|
+
var handleChangeFromExternal = function handleChangeFromExternal(moveData) {
|
|
2575
|
+
var _moveFigureByExternal = moveFigureByExternalChange(moveData.from, moveData.to, moveData.figure),
|
|
2576
|
+
attackedPos = _moveFigureByExternal.attackedPos;
|
|
2577
|
+
onChange(moveData);
|
|
2578
|
+
setAnimated(true);
|
|
2579
|
+
var change = {
|
|
2580
|
+
move: moveData,
|
|
2581
|
+
withTransition: true,
|
|
2582
|
+
attackedPos: attackedPos,
|
|
2583
|
+
transformTo: moveData.type === 'transform' ? moveData.figure : undefined
|
|
2584
|
+
};
|
|
2585
|
+
setNewMove(change);
|
|
2586
|
+
clearClickedPos();
|
|
2587
|
+
clearClickPossibleMoves();
|
|
2588
|
+
};
|
|
2524
2589
|
var handleClickForTargetCell = function handleClickForTargetCell(cellPos, withTransition) {
|
|
2525
2590
|
if (withTransition === void 0) {
|
|
2526
2591
|
withTransition = false;
|
|
@@ -2536,6 +2601,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2536
2601
|
attackedPos = _moveFigureByClick.attackedPos;
|
|
2537
2602
|
if (!moveData) return;
|
|
2538
2603
|
onChange(moveData);
|
|
2604
|
+
setAnimated(withTransition);
|
|
2539
2605
|
setNewMove({
|
|
2540
2606
|
move: moveData,
|
|
2541
2607
|
withTransition: withTransition,
|
|
@@ -2633,6 +2699,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2633
2699
|
return {
|
|
2634
2700
|
fromPos: fromPos,
|
|
2635
2701
|
newMove: newMove,
|
|
2702
|
+
animated: animated,
|
|
2636
2703
|
boardConfig: boardConfig,
|
|
2637
2704
|
markedCells: markedCells,
|
|
2638
2705
|
grabbingPos: grabbingPos,
|
|
@@ -2648,6 +2715,7 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2648
2715
|
showFigurePicker: showFigurePicker,
|
|
2649
2716
|
markCell: markCell,
|
|
2650
2717
|
setNewMove: setNewMove,
|
|
2718
|
+
setAnimated: setAnimated,
|
|
2651
2719
|
handleClick: handleClick,
|
|
2652
2720
|
clearFromPos: clearFromPos,
|
|
2653
2721
|
handleGrabEnd: handleGrabEnd,
|
|
@@ -2662,8 +2730,11 @@ var useChessBoardInteractive = function useChessBoardInteractive(props) {
|
|
|
2662
2730
|
startRenderArrow: startRenderArrow,
|
|
2663
2731
|
reverseChessBoard: reverseChessBoard,
|
|
2664
2732
|
handleGrabbingCell: handleGrabbingCell,
|
|
2733
|
+
moveFigureByChange: moveFigureByChange,
|
|
2665
2734
|
getHasCheckByCellPos: getHasCheckByCellPos,
|
|
2666
|
-
handleSelectFigurePicker: handleSelectFigurePicker
|
|
2735
|
+
handleSelectFigurePicker: handleSelectFigurePicker,
|
|
2736
|
+
handleChangeFromExternal: handleChangeFromExternal,
|
|
2737
|
+
moveFigureByExternalChange: moveFigureByExternalChange
|
|
2667
2738
|
};
|
|
2668
2739
|
};
|
|
2669
2740
|
|
|
@@ -2819,9 +2890,6 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2819
2890
|
reversed = props.reversed,
|
|
2820
2891
|
config = props.config,
|
|
2821
2892
|
playerColor = props.playerColor;
|
|
2822
|
-
var _useState = React.useState(false),
|
|
2823
|
-
animated = _useState[0],
|
|
2824
|
-
setAnimated = _useState[1];
|
|
2825
2893
|
var _useChessBoardInterac = useChessBoardInteractive({
|
|
2826
2894
|
onChange: onChange,
|
|
2827
2895
|
onEndGame: onEndGame,
|
|
@@ -2829,6 +2897,7 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2829
2897
|
}),
|
|
2830
2898
|
fromPos = _useChessBoardInterac.fromPos,
|
|
2831
2899
|
newMove = _useChessBoardInterac.newMove,
|
|
2900
|
+
animated = _useChessBoardInterac.animated,
|
|
2832
2901
|
boardConfig = _useChessBoardInterac.boardConfig,
|
|
2833
2902
|
markedCells = _useChessBoardInterac.markedCells,
|
|
2834
2903
|
grabbingPos = _useChessBoardInterac.grabbingPos,
|
|
@@ -2841,7 +2910,6 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2841
2910
|
startArrowCoord = _useChessBoardInterac.startArrowCoord,
|
|
2842
2911
|
showFigurePicker = _useChessBoardInterac.showFigurePicker,
|
|
2843
2912
|
markCell = _useChessBoardInterac.markCell,
|
|
2844
|
-
setNewMove = _useChessBoardInterac.setNewMove,
|
|
2845
2913
|
handleClick = _useChessBoardInterac.handleClick,
|
|
2846
2914
|
handleGrabEnd = _useChessBoardInterac.handleGrabEnd,
|
|
2847
2915
|
handleGrabbing = _useChessBoardInterac.handleGrabbing,
|
|
@@ -2855,7 +2923,8 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2855
2923
|
reverseChessBoard = _useChessBoardInterac.reverseChessBoard,
|
|
2856
2924
|
handleGrabbingCell = _useChessBoardInterac.handleGrabbingCell,
|
|
2857
2925
|
getHasCheckByCellPos = _useChessBoardInterac.getHasCheckByCellPos,
|
|
2858
|
-
handleSelectFigurePicker = _useChessBoardInterac.handleSelectFigurePicker
|
|
2926
|
+
handleSelectFigurePicker = _useChessBoardInterac.handleSelectFigurePicker,
|
|
2927
|
+
handleChangeFromExternal = _useChessBoardInterac.handleChangeFromExternal;
|
|
2859
2928
|
var handleUpdateFEN = function handleUpdateFEN(FEN) {
|
|
2860
2929
|
var _FENtoGameState = FENtoGameState(FEN),
|
|
2861
2930
|
boardState = _FENtoGameState.boardState,
|
|
@@ -2875,24 +2944,8 @@ var ChessBoard = function ChessBoard(props) {
|
|
|
2875
2944
|
}, [reversed]);
|
|
2876
2945
|
React.useEffect(function () {
|
|
2877
2946
|
if (!change) return;
|
|
2878
|
-
var
|
|
2879
|
-
|
|
2880
|
-
});
|
|
2881
|
-
if (change.withTransition) {
|
|
2882
|
-
setAnimated(true);
|
|
2883
|
-
setTimeout(function () {
|
|
2884
|
-
setNewMove(updatedChange);
|
|
2885
|
-
}, 10);
|
|
2886
|
-
setTimeout(function () {
|
|
2887
|
-
setAnimated(false);
|
|
2888
|
-
}, 160);
|
|
2889
|
-
setTimeout(function () {
|
|
2890
|
-
handleUpdateFEN(updatedChange.move.FEN);
|
|
2891
|
-
}, 170);
|
|
2892
|
-
} else {
|
|
2893
|
-
setNewMove(updatedChange);
|
|
2894
|
-
handleUpdateFEN(updatedChange.move.FEN);
|
|
2895
|
-
}
|
|
2947
|
+
var reversedChange = reversed ? JSChessEngine.reverseMove(change.move) : change.move;
|
|
2948
|
+
handleChangeFromExternal(reversedChange);
|
|
2896
2949
|
}, [change]);
|
|
2897
2950
|
return React__default.createElement("div", {
|
|
2898
2951
|
className: styles.chessBoard
|