react-native-chess-kit 0.5.1 → 0.5.3
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/LICENSE +21 -21
- package/README.md +187 -168
- package/lib/commonjs/board-annotations.js +8 -8
- package/lib/commonjs/board-annotations.js.map +1 -1
- package/lib/commonjs/board-arrows.js +9 -9
- package/lib/commonjs/board-arrows.js.map +1 -1
- package/lib/commonjs/board-background.js +5 -5
- package/lib/commonjs/board-background.js.map +1 -1
- package/lib/commonjs/board-coordinates.js +8 -8
- package/lib/commonjs/board-coordinates.js.map +1 -1
- package/lib/commonjs/board-drag-ghost.js +10 -10
- package/lib/commonjs/board-drag-ghost.js.map +1 -1
- package/lib/commonjs/board-highlights.js +15 -15
- package/lib/commonjs/board-highlights.js.map +1 -1
- package/lib/commonjs/board-legal-dots.js +5 -5
- package/lib/commonjs/board-legal-dots.js.map +1 -1
- package/lib/commonjs/board-piece.js +25 -25
- package/lib/commonjs/board-piece.js.map +1 -1
- package/lib/commonjs/board-pieces.js +6 -6
- package/lib/commonjs/board-pieces.js.map +1 -1
- package/lib/commonjs/board.js +68 -63
- package/lib/commonjs/board.js.map +1 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/pieces/default-pieces.js.map +1 -1
- package/lib/commonjs/pieces/index.js.map +1 -1
- package/lib/commonjs/promotion-picker.js +9 -9
- package/lib/commonjs/promotion-picker.js.map +1 -1
- package/lib/commonjs/static-board.js +7 -7
- package/lib/commonjs/static-board.js.map +1 -1
- package/lib/commonjs/themes.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/use-board-gesture.js +26 -26
- package/lib/commonjs/use-board-gesture.js.map +1 -1
- package/lib/commonjs/use-board-pieces.js +15 -15
- package/lib/commonjs/use-board-pieces.js.map +1 -1
- package/lib/commonjs/use-board-state.js +21 -12
- package/lib/commonjs/use-board-state.js.map +1 -1
- package/lib/commonjs/use-premove.js +12 -12
- package/lib/commonjs/use-premove.js.map +1 -1
- package/lib/module/board-annotations.js +8 -8
- package/lib/module/board-annotations.js.map +1 -1
- package/lib/module/board-arrows.js +9 -9
- package/lib/module/board-arrows.js.map +1 -1
- package/lib/module/board-background.js +5 -5
- package/lib/module/board-background.js.map +1 -1
- package/lib/module/board-coordinates.js +8 -8
- package/lib/module/board-coordinates.js.map +1 -1
- package/lib/module/board-drag-ghost.js +10 -10
- package/lib/module/board-drag-ghost.js.map +1 -1
- package/lib/module/board-highlights.js +15 -15
- package/lib/module/board-highlights.js.map +1 -1
- package/lib/module/board-legal-dots.js +5 -5
- package/lib/module/board-legal-dots.js.map +1 -1
- package/lib/module/board-piece.js +25 -25
- package/lib/module/board-piece.js.map +1 -1
- package/lib/module/board-pieces.js +6 -6
- package/lib/module/board-pieces.js.map +1 -1
- package/lib/module/board.js +68 -63
- package/lib/module/board.js.map +1 -1
- package/lib/module/constants.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/pieces/default-pieces.js.map +1 -1
- package/lib/module/pieces/index.js.map +1 -1
- package/lib/module/promotion-picker.js +9 -9
- package/lib/module/promotion-picker.js.map +1 -1
- package/lib/module/static-board.js +7 -7
- package/lib/module/static-board.js.map +1 -1
- package/lib/module/themes.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/use-board-gesture.js +26 -26
- package/lib/module/use-board-gesture.js.map +1 -1
- package/lib/module/use-board-pieces.js +15 -15
- package/lib/module/use-board-pieces.js.map +1 -1
- package/lib/module/use-board-state.js +21 -12
- package/lib/module/use-board-state.js.map +1 -1
- package/lib/module/use-premove.js +12 -12
- package/lib/module/use-premove.js.map +1 -1
- package/lib/typescript/board-coordinates.d.ts.map +1 -1
- package/lib/typescript/board.d.ts.map +1 -1
- package/lib/typescript/promotion-picker.d.ts.map +1 -1
- package/lib/typescript/static-board.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +12 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/use-board-gesture.d.ts.map +1 -1
- package/lib/typescript/use-board-state.d.ts.map +1 -1
- package/package.json +23 -3
- package/src/board-annotations.tsx +147 -147
- package/src/board-arrows.tsx +197 -197
- package/src/board-background.tsx +46 -46
- package/src/board-coordinates.tsx +192 -192
- package/src/board-drag-ghost.tsx +132 -132
- package/src/board-highlights.tsx +226 -226
- package/src/board-legal-dots.tsx +73 -73
- package/src/board-piece.tsx +160 -160
- package/src/board-pieces.tsx +63 -63
- package/src/board.tsx +688 -685
- package/src/constants.ts +103 -103
- package/src/index.ts +101 -101
- package/src/pieces/default-pieces.tsx +383 -383
- package/src/pieces/index.ts +1 -1
- package/src/promotion-picker.tsx +147 -147
- package/src/static-board.tsx +186 -187
- package/src/themes.ts +129 -129
- package/src/types.ts +394 -373
- package/src/use-board-gesture.ts +459 -429
- package/src/use-board-pieces.ts +158 -158
- package/src/use-board-state.ts +120 -111
- package/src/use-premove.ts +59 -59
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","squareToXY","DEFAULT_ANNOTATION_BG","DEFAULT_ANNOTATION_TEXT","ANNOTATION_SCALE","jsx","_jsx","BoardAnnotations","memo","boardSize","orientation","squareSize","annotations","length","badgeSize","fontSize","style","position","width","height","pointerEvents","children","map","ann","i","x","y","square","bgColor","backgroundColor","textColor","color","left","top","minWidth","borderRadius","alignItems","justifyContent","paddingHorizontal","fontWeight","lineHeight","textAlign","numberOfLines","text","Annotation"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","Text","squareToXY","DEFAULT_ANNOTATION_BG","DEFAULT_ANNOTATION_TEXT","ANNOTATION_SCALE","jsx","_jsx","BoardAnnotations","memo","boardSize","orientation","squareSize","annotations","length","badgeSize","fontSize","style","position","width","height","pointerEvents","children","map","ann","i","x","y","square","bgColor","backgroundColor","textColor","color","left","top","minWidth","borderRadius","alignItems","justifyContent","paddingHorizontal","fontWeight","lineHeight","textAlign","numberOfLines","text","Annotation"],"sourceRoot":"../../src","sources":["board-annotations.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,13 +47,13 @@ function calculateArrowPath(from, to, shortenBy) {
|
|
|
47
47
|
// Combined arrows + shapes SVG layer
|
|
48
48
|
// ---------------------------------------------------------------------------
|
|
49
49
|
|
|
50
|
-
/**
|
|
51
|
-
* SVG overlay for arrows and shapes drawn on the board.
|
|
52
|
-
*
|
|
53
|
-
* Uses a percentage-based 100x100 viewBox so coordinates map cleanly
|
|
54
|
-
* to the 8x8 grid (each square = 12.5 x 12.5 units).
|
|
55
|
-
*
|
|
56
|
-
* Renders above the pieces layer so arrows are always visible.
|
|
50
|
+
/**
|
|
51
|
+
* SVG overlay for arrows and shapes drawn on the board.
|
|
52
|
+
*
|
|
53
|
+
* Uses a percentage-based 100x100 viewBox so coordinates map cleanly
|
|
54
|
+
* to the 8x8 grid (each square = 12.5 x 12.5 units).
|
|
55
|
+
*
|
|
56
|
+
* Renders above the pieces layer so arrows are always visible.
|
|
57
57
|
*/
|
|
58
58
|
export const BoardArrows = /*#__PURE__*/React.memo(function BoardArrows({
|
|
59
59
|
boardSize,
|
|
@@ -139,8 +139,8 @@ const ArrowSvg = /*#__PURE__*/React.memo(function ArrowSvg({
|
|
|
139
139
|
children: [/*#__PURE__*/_jsx(Line, {
|
|
140
140
|
x1: path.x1,
|
|
141
141
|
y1: path.y1,
|
|
142
|
-
x2: path.x2,
|
|
143
|
-
y2: path.y2,
|
|
142
|
+
x2: path.x2 - ux * headSize * 2,
|
|
143
|
+
y2: path.y2 - uy * headSize * 2,
|
|
144
144
|
stroke: color,
|
|
145
145
|
strokeWidth: width,
|
|
146
146
|
strokeLinecap: "round",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Svg","Line","Polygon","Circle","SvgCircle","DEFAULT_ARROW_COLOR","DEFAULT_SHAPE_COLOR","ARROW_STROKE_WIDTH","ARROW_HEAD_SIZE","ARROW_SHORTEN_BY","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","squareToViewBoxCenter","square","orientation","fileIdx","charCodeAt","rankIdx","parseInt","col","row","x","y","calculateArrowPath","from","to","shortenBy","dx","dy","len","Math","sqrt","x1","y1","x2","y2","ux","uy","BoardArrows","memo","boardSize","arrows","shapes","hasArrows","length","hasShapes","style","position","width","height","pointerEvents","children","viewBox","map","shape","i","type","center","color","cx","cy","r","fill","stroke","strokeWidth","opacity","arrow","ArrowSvg","fromCoord","toCoord","path","headSize","tip","baseLeft","baseRight","arrowPoints","strokeLinecap","points","Arrow"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","Svg","Line","Polygon","Circle","SvgCircle","DEFAULT_ARROW_COLOR","DEFAULT_SHAPE_COLOR","ARROW_STROKE_WIDTH","ARROW_HEAD_SIZE","ARROW_SHORTEN_BY","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","squareToViewBoxCenter","square","orientation","fileIdx","charCodeAt","rankIdx","parseInt","col","row","x","y","calculateArrowPath","from","to","shortenBy","dx","dy","len","Math","sqrt","x1","y1","x2","y2","ux","uy","BoardArrows","memo","boardSize","arrows","shapes","hasArrows","length","hasShapes","style","position","width","height","pointerEvents","children","viewBox","map","shape","i","type","center","color","cx","cy","r","fill","stroke","strokeWidth","opacity","arrow","ArrowSvg","fromCoord","toCoord","path","headSize","tip","baseLeft","baseRight","arrowPoints","strokeLinecap","points","Arrow"],"sourceRoot":"../../src","sources":["board-arrows.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
-
/**
|
|
7
|
-
* 64 static colored squares forming the chess board grid.
|
|
8
|
-
*
|
|
9
|
-
* These are plain Views with backgroundColor — no animations, no gesture
|
|
10
|
-
* handlers. They never re-render after mount unless the board theme changes.
|
|
6
|
+
/**
|
|
7
|
+
* 64 static colored squares forming the chess board grid.
|
|
8
|
+
*
|
|
9
|
+
* These are plain Views with backgroundColor — no animations, no gesture
|
|
10
|
+
* handlers. They never re-render after mount unless the board theme changes.
|
|
11
11
|
*/
|
|
12
12
|
export const BoardBackground = /*#__PURE__*/React.memo(function BoardBackground({
|
|
13
13
|
boardSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","jsx","_jsx","BoardBackground","memo","boardSize","lightColor","darkColor","squareSize","style","width","height","flexDirection","flexWrap","children","SQUARE_INDICES","map","i","row","Math","floor","col","isLight","backgroundColor","Array","from","length","_"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","jsx","_jsx","BoardBackground","memo","boardSize","lightColor","darkColor","squareSize","style","width","height","flexDirection","flexWrap","children","SQUARE_INDICES","map","i","row","Math","floor","col","isLight","backgroundColor","Array","from","length","_"],"sourceRoot":"../../src","sources":["board-background.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQpC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,gBAAGJ,KAAK,CAACK,IAAI,CAAC,SAASD,eAAeA,CAAC;EACjEE,SAAS;EACTC,UAAU;EACVC;AACoB,CAAC,EAAE;EACvB,MAAMC,UAAU,GAAGH,SAAS,GAAG,CAAC;EAEhC,oBACEH,IAAA,CAACF,IAAI;IAACS,KAAK,EAAE;MAAEC,KAAK,EAAEL,SAAS;MAAEM,MAAM,EAAEN,SAAS;MAAEO,aAAa,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAO,CAAE;IAAAC,QAAA,EAC1FC,cAAc,CAACC,GAAG,CAAEC,CAAC,IAAK;MACzB,MAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACH,CAAC,GAAG,CAAC,CAAC;MAC7B,MAAMI,GAAG,GAAGJ,CAAC,GAAG,CAAC;MACjB,MAAMK,OAAO,GAAG,CAACJ,GAAG,GAAGG,GAAG,IAAI,CAAC,KAAK,CAAC;MAErC,oBACEnB,IAAA,CAACF,IAAI;QAEHS,KAAK,EAAE;UACLC,KAAK,EAAEF,UAAU;UACjBG,MAAM,EAAEH,UAAU;UAClBe,eAAe,EAAED,OAAO,GAAGhB,UAAU,GAAGC;QAC1C;MAAE,GALGU,CAMN,CAAC;IAEN,CAAC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC;;AAEF;AACA,MAAMF,cAAc,GAAGS,KAAK,CAACC,IAAI,CAAC;EAAEC,MAAM,EAAE;AAAG,CAAC,EAAE,CAACC,CAAC,EAAEV,CAAC,KAAKA,CAAC,CAAC","ignoreList":[]}
|
|
@@ -8,14 +8,14 @@ const FILES_BLACK = ['h', 'g', 'f', 'e', 'd', 'c', 'b', 'a'];
|
|
|
8
8
|
const RANKS_WHITE = ['8', '7', '6', '5', '4', '3', '2', '1'];
|
|
9
9
|
const RANKS_BLACK = ['1', '2', '3', '4', '5', '6', '7', '8'];
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* File letters (a-h) and rank numbers (1-8) drawn on or around the board.
|
|
13
|
-
*
|
|
14
|
-
* Two modes:
|
|
15
|
-
* - **inside** (default): absolute-positioned inside each edge square, colors
|
|
16
|
-
* alternate to contrast with the square behind them.
|
|
17
|
-
* - **outside**: rendered in a gutter area around the board. Rank numbers to
|
|
18
|
-
* the left, file letters along the bottom. Uses the dark square color.
|
|
11
|
+
/**
|
|
12
|
+
* File letters (a-h) and rank numbers (1-8) drawn on or around the board.
|
|
13
|
+
*
|
|
14
|
+
* Two modes:
|
|
15
|
+
* - **inside** (default): absolute-positioned inside each edge square, colors
|
|
16
|
+
* alternate to contrast with the square behind them.
|
|
17
|
+
* - **outside**: rendered in a gutter area around the board. Rank numbers to
|
|
18
|
+
* the left, file letters along the bottom. Uses the dark square color.
|
|
19
19
|
*/
|
|
20
20
|
export const BoardCoordinates = /*#__PURE__*/React.memo(function BoardCoordinates({
|
|
21
21
|
boardSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FILES_WHITE","FILES_BLACK","RANKS_WHITE","RANKS_BLACK","BoardCoordinates","memo","boardSize","orientation","lightColor","darkColor","withLetters","withNumbers","position","gutterWidth","squareSize","files","ranks","fontSize","textColor","children","style","left","top","width","height","pointerEvents","map","rank","row","alignItems","justifyContent","fontWeight","color","bottom","file","col","padding","isLight","right","textAlign"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","Text","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FILES_WHITE","FILES_BLACK","RANKS_WHITE","RANKS_BLACK","BoardCoordinates","memo","boardSize","orientation","lightColor","darkColor","withLetters","withNumbers","position","gutterWidth","squareSize","files","ranks","fontSize","textColor","children","style","left","top","width","height","pointerEvents","map","rank","row","alignItems","justifyContent","fontWeight","color","bottom","file","col","padding","isLight","right","textAlign"],"sourceRoot":"../../src","sources":["board-coordinates.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import Animated, { useAnimatedStyle } from 'react-native-reanimated';
|
|
5
5
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
6
|
-
/**
|
|
7
|
-
* Floating piece that follows the user's finger during drag.
|
|
8
|
-
*
|
|
9
|
-
* Only ONE instance exists — not one per piece. It reads drag position
|
|
10
|
-
* from shared values on the UI thread, so zero JS bridge calls and
|
|
11
|
-
* zero re-renders while dragging.
|
|
6
|
+
/**
|
|
7
|
+
* Floating piece that follows the user's finger during drag.
|
|
8
|
+
*
|
|
9
|
+
* Only ONE instance exists — not one per piece. It reads drag position
|
|
10
|
+
* from shared values on the UI thread, so zero JS bridge calls and
|
|
11
|
+
* zero re-renders while dragging.
|
|
12
12
|
*/
|
|
13
13
|
export const BoardDragGhost = /*#__PURE__*/React.memo(function BoardDragGhost({
|
|
14
14
|
squareSize,
|
|
@@ -57,10 +57,10 @@ export const BoardDragGhost = /*#__PURE__*/React.memo(function BoardDragGhost({
|
|
|
57
57
|
});
|
|
58
58
|
});
|
|
59
59
|
|
|
60
|
-
/**
|
|
61
|
-
* Inner content that renders the actual piece image.
|
|
62
|
-
* Separate component so the Animated.View wrapper doesn't need
|
|
63
|
-
* to re-render when the piece code changes — it uses shared value.
|
|
60
|
+
/**
|
|
61
|
+
* Inner content that renders the actual piece image.
|
|
62
|
+
* Separate component so the Animated.View wrapper doesn't need
|
|
63
|
+
* to re-render when the piece code changes — it uses shared value.
|
|
64
64
|
*/
|
|
65
65
|
const DragGhostContent = /*#__PURE__*/React.memo(function DragGhostContent({
|
|
66
66
|
renderPiece,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","useAnimatedStyle","jsx","_jsx","Fragment","_Fragment","BoardDragGhost","memo","squareSize","isDragging","dragX","dragY","dragPieceCode","renderPiece","animatedStyle","value","opacity","transform","translateX","translateY","scale","View","style","position","width","height","zIndex","pointerEvents","children","DragGhostContent","codes","PIECE_CODES","map","code","GhostPieceSlot"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","Animated","useAnimatedStyle","jsx","_jsx","Fragment","_Fragment","BoardDragGhost","memo","squareSize","isDragging","dragX","dragY","dragPieceCode","renderPiece","animatedStyle","value","opacity","transform","translateX","translateY","scale","View","style","position","width","height","zIndex","pointerEvents","children","DragGhostContent","codes","PIECE_CODES","map","code","GhostPieceSlot"],"sourceRoot":"../../src","sources":["board-drag-ghost.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,15 +13,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
13
13
|
// Static highlights (View-based, no animation needed)
|
|
14
14
|
// ---------------------------------------------------------------------------
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* Renders all board square highlights as a single layer.
|
|
18
|
-
*
|
|
19
|
-
* Combines multiple highlight sources (last move, check, selected piece,
|
|
20
|
-
* premoves, custom, and imperative) into one flat list of colored rectangles.
|
|
21
|
-
* Rendered between the background and pieces layers.
|
|
22
|
-
*
|
|
23
|
-
* Uses plain Views (not Animated) because highlights change discretely
|
|
24
|
-
* on move events, not during animation frames.
|
|
16
|
+
/**
|
|
17
|
+
* Renders all board square highlights as a single layer.
|
|
18
|
+
*
|
|
19
|
+
* Combines multiple highlight sources (last move, check, selected piece,
|
|
20
|
+
* premoves, custom, and imperative) into one flat list of colored rectangles.
|
|
21
|
+
* Rendered between the background and pieces layers.
|
|
22
|
+
*
|
|
23
|
+
* Uses plain Views (not Animated) because highlights change discretely
|
|
24
|
+
* on move events, not during animation frames.
|
|
25
25
|
*/
|
|
26
26
|
export const BoardHighlights = /*#__PURE__*/React.memo(function BoardHighlights({
|
|
27
27
|
boardSize,
|
|
@@ -125,9 +125,9 @@ export const BoardHighlights = /*#__PURE__*/React.memo(function BoardHighlights(
|
|
|
125
125
|
// Drag target highlight (Animated, updates on UI thread during drag)
|
|
126
126
|
// ---------------------------------------------------------------------------
|
|
127
127
|
|
|
128
|
-
/**
|
|
129
|
-
* Highlight on the square currently under the dragged piece.
|
|
130
|
-
* Uses Reanimated shared values for zero-JS-bridge updates during drag.
|
|
128
|
+
/**
|
|
129
|
+
* Highlight on the square currently under the dragged piece.
|
|
130
|
+
* Uses Reanimated shared values for zero-JS-bridge updates during drag.
|
|
131
131
|
*/
|
|
132
132
|
export const DragTargetHighlight = /*#__PURE__*/React.memo(function DragTargetHighlight({
|
|
133
133
|
squareSize,
|
|
@@ -177,9 +177,9 @@ export const DragTargetHighlight = /*#__PURE__*/React.memo(function DragTargetHi
|
|
|
177
177
|
// Standalone SquareHighlight (exported for advanced consumers)
|
|
178
178
|
// ---------------------------------------------------------------------------
|
|
179
179
|
|
|
180
|
-
/**
|
|
181
|
-
* Single square highlight component.
|
|
182
|
-
* Exported for consumers who build their own overlay layers.
|
|
180
|
+
/**
|
|
181
|
+
* Single square highlight component.
|
|
182
|
+
* Exported for consumers who build their own overlay layers.
|
|
183
183
|
*/
|
|
184
184
|
export const SquareHighlight = /*#__PURE__*/React.memo(function SquareHighlight({
|
|
185
185
|
square,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Animated","useAnimatedStyle","squareToXY","jsx","_jsx","BoardHighlights","memo","boardSize","orientation","squareSize","lastMove","lastMoveColor","checkSquare","checkColor","selectedSquare","selectedColor","premoveSquares","premoveColor","highlights","imperativeHighlights","allHighlights","push","square","from","color","to","h","length","style","position","width","height","pointerEvents","children","map","i","x","y","left","top","backgroundColor","DragTargetHighlight","dragTargetSquare","animatedStyle","value","opacity","transform","translateX","translateY","fileIdx","charCodeAt","rankIdx","parseInt","col","row","SquareHighlight"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","Animated","useAnimatedStyle","squareToXY","jsx","_jsx","BoardHighlights","memo","boardSize","orientation","squareSize","lastMove","lastMoveColor","checkSquare","checkColor","selectedSquare","selectedColor","premoveSquares","premoveColor","highlights","imperativeHighlights","allHighlights","push","square","from","color","to","h","length","style","position","width","height","pointerEvents","children","map","i","x","y","left","top","backgroundColor","DragTargetHighlight","dragTargetSquare","animatedStyle","value","opacity","transform","translateX","translateY","fileIdx","charCodeAt","rankIdx","parseInt","col","row","SquareHighlight"],"sourceRoot":"../../src","sources":["board-highlights.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,11 +4,11 @@ import React from 'react';
|
|
|
4
4
|
import { View } from 'react-native';
|
|
5
5
|
import { squareToXY } from './use-board-pieces';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
/**
|
|
8
|
-
* Legal move indicator dots, rendered only when a piece is selected.
|
|
9
|
-
*
|
|
10
|
-
* Dots are CONDITIONALLY rendered (only for actual legal move squares,
|
|
11
|
-
* typically 5-15) instead of always mounting 64 invisible dot views.
|
|
7
|
+
/**
|
|
8
|
+
* Legal move indicator dots, rendered only when a piece is selected.
|
|
9
|
+
*
|
|
10
|
+
* Dots are CONDITIONALLY rendered (only for actual legal move squares,
|
|
11
|
+
* typically 5-15) instead of always mounting 64 invisible dot views.
|
|
12
12
|
*/
|
|
13
13
|
export const BoardLegalDots = /*#__PURE__*/React.memo(function BoardLegalDots({
|
|
14
14
|
legalMoves,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","squareToXY","jsx","_jsx","BoardLegalDots","memo","legalMoves","squareSize","orientation","length","dotSize","ringSize","borderWidth","style","position","width","height","pointerEvents","children","map","move","x","y","square","isCapture","left","top","borderRadius","borderColor","backgroundColor"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","View","squareToXY","jsx","_jsx","BoardLegalDots","memo","legalMoves","squareSize","orientation","length","dotSize","ringSize","borderWidth","style","position","width","height","pointerEvents","children","map","move","x","y","square","isCapture","left","top","borderRadius","borderColor","backgroundColor"],"sourceRoot":"../../src","sources":["board-legal-dots.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAGnC,SAASC,UAAU,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQhD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,gBAAGL,KAAK,CAACM,IAAI,CAAC,SAASD,cAAcA,CAAC;EAC/DE,UAAU;EACVC,UAAU;EACVC;AACmB,CAAC,EAAE;EACtB,IAAIF,UAAU,CAACG,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAExC,MAAMC,OAAO,GAAGH,UAAU,GAAG,IAAI;EACjC,MAAMI,QAAQ,GAAGJ,UAAU,GAAG,IAAI;EAClC,MAAMK,WAAW,GAAGL,UAAU,GAAG,IAAI;EAErC,oBACEJ,IAAA,CAACH,IAAI;IACHa,KAAK,EAAE;MAAEC,QAAQ,EAAE,UAAU;MAAEC,KAAK,EAAER,UAAU,GAAG,CAAC;MAAES,MAAM,EAAET,UAAU,GAAG;IAAE,CAAE;IAC/EU,aAAa,EAAC,MAAM;IAAAC,QAAA,EAEnBZ,UAAU,CAACa,GAAG,CAAEC,IAAI,IAAK;MACxB,MAAM;QAAEC,CAAC;QAAEC;MAAE,CAAC,GAAGrB,UAAU,CAACmB,IAAI,CAACG,MAAM,EAAEhB,UAAU,EAAEC,WAAW,CAAC;MAEjE,IAAIY,IAAI,CAACI,SAAS,EAAE;QAClB,oBACErB,IAAA,CAACH,IAAI;UAEHa,KAAK,EAAE;YACLC,QAAQ,EAAE,UAAU;YACpBW,IAAI,EAAEJ,CAAC,GAAG,CAACd,UAAU,GAAGI,QAAQ,IAAI,CAAC;YACrCe,GAAG,EAAEJ,CAAC,GAAG,CAACf,UAAU,GAAGI,QAAQ,IAAI,CAAC;YACpCI,KAAK,EAAEJ,QAAQ;YACfK,MAAM,EAAEL,QAAQ;YAChBgB,YAAY,EAAEhB,QAAQ,GAAG,CAAC;YAC1BC,WAAW;YACXgB,WAAW,EAAE;UACf;QAAE,GAVGR,IAAI,CAACG,MAWX,CAAC;MAEN;MAEA,oBACEpB,IAAA,CAACH,IAAI;QAEHa,KAAK,EAAE;UACLC,QAAQ,EAAE,UAAU;UACpBW,IAAI,EAAEJ,CAAC,GAAG,CAACd,UAAU,GAAGG,OAAO,IAAI,CAAC;UACpCgB,GAAG,EAAEJ,CAAC,GAAG,CAACf,UAAU,GAAGG,OAAO,IAAI,CAAC;UACnCK,KAAK,EAAEL,OAAO;UACdM,MAAM,EAAEN,OAAO;UACfiB,YAAY,EAAEjB,OAAO,GAAG,CAAC;UACzBmB,eAAe,EAAE;QACnB;MAAE,GATGT,IAAI,CAACG,MAUX,CAAC;IAEN,CAAC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,9 +4,9 @@ import React, { useEffect } from 'react';
|
|
|
4
4
|
import Animated, { useAnimatedStyle, useSharedValue, withTiming, withSpring } from 'react-native-reanimated';
|
|
5
5
|
import { DEFAULT_MOVE_DURATION } from './constants';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
/**
|
|
8
|
-
* Animate a shared value using the provided AnimationConfig.
|
|
9
|
-
* Falls back to withTiming with moveDuration for backwards compatibility.
|
|
7
|
+
/**
|
|
8
|
+
* Animate a shared value using the provided AnimationConfig.
|
|
9
|
+
* Falls back to withTiming with moveDuration for backwards compatibility.
|
|
10
10
|
*/
|
|
11
11
|
function animateValue(target, config, moveDuration) {
|
|
12
12
|
if (config) {
|
|
@@ -29,28 +29,28 @@ function animateValue(target, config, moveDuration) {
|
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
/**
|
|
33
|
-
* A single animated chess piece.
|
|
34
|
-
*
|
|
35
|
-
* Uses two nested Animated.Views to avoid the Reanimated warning
|
|
36
|
-
* "Property opacity may be overwritten by a layout animation":
|
|
37
|
-
*
|
|
38
|
-
* Outer view: position (transform) + exiting layout animation (FadeOut)
|
|
39
|
-
* Inner view: drag-hide opacity
|
|
40
|
-
*
|
|
41
|
-
* Only `transform` and `opacity` are animated — Reanimated's fast path
|
|
42
|
-
* on Android. No layout properties (top/left/width/height), avoiding
|
|
43
|
-
* costly layout recalculations on low-end devices.
|
|
44
|
-
*
|
|
45
|
-
* During drag:
|
|
46
|
-
* - Inner view hides (opacity: 0) — the drag ghost shows instead
|
|
47
|
-
*
|
|
48
|
-
* After a move:
|
|
49
|
-
* - Outer view snaps to new position via withTiming/withSpring
|
|
50
|
-
*
|
|
51
|
-
* On capture (unmount):
|
|
52
|
-
* - Outer view plays the exitingAnimation (default: FadeOut, no conflict with inner opacity)
|
|
53
|
-
* - Pass exitingAnimation={undefined} to disable (instant disappear on full board remount)
|
|
32
|
+
/**
|
|
33
|
+
* A single animated chess piece.
|
|
34
|
+
*
|
|
35
|
+
* Uses two nested Animated.Views to avoid the Reanimated warning
|
|
36
|
+
* "Property opacity may be overwritten by a layout animation":
|
|
37
|
+
*
|
|
38
|
+
* Outer view: position (transform) + exiting layout animation (FadeOut)
|
|
39
|
+
* Inner view: drag-hide opacity
|
|
40
|
+
*
|
|
41
|
+
* Only `transform` and `opacity` are animated — Reanimated's fast path
|
|
42
|
+
* on Android. No layout properties (top/left/width/height), avoiding
|
|
43
|
+
* costly layout recalculations on low-end devices.
|
|
44
|
+
*
|
|
45
|
+
* During drag:
|
|
46
|
+
* - Inner view hides (opacity: 0) — the drag ghost shows instead
|
|
47
|
+
*
|
|
48
|
+
* After a move:
|
|
49
|
+
* - Outer view snaps to new position via withTiming/withSpring
|
|
50
|
+
*
|
|
51
|
+
* On capture (unmount):
|
|
52
|
+
* - Outer view plays the exitingAnimation (default: FadeOut, no conflict with inner opacity)
|
|
53
|
+
* - Pass exitingAnimation={undefined} to disable (instant disappear on full board remount)
|
|
54
54
|
*/
|
|
55
55
|
export const BoardPieceView = /*#__PURE__*/React.memo(function BoardPieceView({
|
|
56
56
|
targetX,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","Animated","useAnimatedStyle","useSharedValue","withTiming","withSpring","DEFAULT_MOVE_DURATION","jsx","_jsx","animateValue","target","config","moveDuration","type","damping","stiffness","mass","duration","BoardPieceView","memo","targetX","targetY","squareSize","animationConfig","children","activeSquare","isDragging","square","exitingAnimation","currentX","currentY","value","positionStyle","transform","translateX","translateY","opacityStyle","isBeingDragged","opacity","View","style","position","width","height","exiting","flex","prev","next"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","useEffect","Animated","useAnimatedStyle","useSharedValue","withTiming","withSpring","DEFAULT_MOVE_DURATION","jsx","_jsx","animateValue","target","config","moveDuration","type","damping","stiffness","mass","duration","BoardPieceView","memo","targetX","targetY","squareSize","animationConfig","children","activeSquare","isDragging","square","exitingAnimation","currentX","currentY","value","positionStyle","transform","translateX","translateY","opacityStyle","isBeingDragged","opacity","View","style","position","width","height","exiting","flex","prev","next"],"sourceRoot":"../../src","sources":["board-piece.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,12 +4,12 @@ import React from 'react';
|
|
|
4
4
|
import { BoardPieceView } from './board-piece';
|
|
5
5
|
import { squareToXY } from './use-board-pieces';
|
|
6
6
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
-
/**
|
|
8
|
-
* Renders all pieces on the board.
|
|
9
|
-
*
|
|
10
|
-
* Each piece gets a stable key (from useBoardPieces) so React doesn't
|
|
11
|
-
* unmount/remount pieces that moved — it updates their position props
|
|
12
|
-
* and the BoardPieceView animates the transition.
|
|
7
|
+
/**
|
|
8
|
+
* Renders all pieces on the board.
|
|
9
|
+
*
|
|
10
|
+
* Each piece gets a stable key (from useBoardPieces) so React doesn't
|
|
11
|
+
* unmount/remount pieces that moved — it updates their position props
|
|
12
|
+
* and the BoardPieceView animates the transition.
|
|
13
13
|
*/
|
|
14
14
|
export const BoardPiecesLayer = /*#__PURE__*/React.memo(function BoardPiecesLayer({
|
|
15
15
|
pieces,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","BoardPieceView","squareToXY","jsx","_jsx","Fragment","_Fragment","BoardPiecesLayer","memo","pieces","squareSize","orientation","moveDuration","animationConfig","renderPiece","activeSquare","isDragging","exitingAnimation","children","map","piece","x","y","square","targetX","targetY","code","id"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["React","BoardPieceView","squareToXY","jsx","_jsx","Fragment","_Fragment","BoardPiecesLayer","memo","pieces","squareSize","orientation","moveDuration","animationConfig","renderPiece","activeSquare","isDragging","exitingAnimation","children","map","piece","x","y","square","targetX","targetY","code","id"],"sourceRoot":"../../src","sources":["board-pieces.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAIzB,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,UAAU,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAehD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,gBAAGP,KAAK,CAACQ,IAAI,CAAC,SAASD,gBAAgBA,CAAC;EACnEE,MAAM;EACNC,UAAU;EACVC,WAAW;EACXC,YAAY;EACZC,eAAe;EACfC,WAAW;EACXC,YAAY;EACZC,UAAU;EACVC;AACgB,CAAC,EAAE;EACnB,oBACEb,IAAA,CAAAE,SAAA;IAAAY,QAAA,EACGT,MAAM,CAACU,GAAG,CAAEC,KAAK,IAAK;MACrB,MAAM;QAAEC,CAAC;QAAEC;MAAE,CAAC,GAAGpB,UAAU,CAACkB,KAAK,CAACG,MAAM,EAAEb,UAAU,EAAEC,WAAW,CAAC;MAElE,oBACEP,IAAA,CAACH,cAAc;QAEbuB,OAAO,EAAEH,CAAE;QACXI,OAAO,EAAEH,CAAE;QACXZ,UAAU,EAAEA,UAAW;QACvBE,YAAY,EAAEA,YAAa;QAC3BC,eAAe,EAAEA,eAAgB;QACjCE,YAAY,EAAEA,YAAa;QAC3BC,UAAU,EAAEA,UAAW;QACvBO,MAAM,EAAEH,KAAK,CAACG,MAAO;QACrBN,gBAAgB,EAAEA,gBAAiB;QAAAC,QAAA,EAElCJ,WAAW,CAACM,KAAK,CAACM,IAAI,EAAEhB,UAAU;MAAC,GAX/BU,KAAK,CAACO,EAYG,CAAC;IAErB,CAAC;EAAC,CACF,CAAC;AAEP,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/board.js
CHANGED
|
@@ -24,9 +24,9 @@ import { PromotionPicker } from './promotion-picker';
|
|
|
24
24
|
// Check detection helper
|
|
25
25
|
// ---------------------------------------------------------------------------
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Find the king square for the side currently in check.
|
|
29
|
-
* Returns null if not in check.
|
|
27
|
+
/**
|
|
28
|
+
* Find the king square for the side currently in check.
|
|
29
|
+
* Returns null if not in check.
|
|
30
30
|
*/
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
32
|
function detectCheckSquare(fen, isInCheck, getTurn) {
|
|
@@ -57,27 +57,27 @@ function detectCheckSquare(fen, isInCheck, getTurn) {
|
|
|
57
57
|
// Board component
|
|
58
58
|
// ---------------------------------------------------------------------------
|
|
59
59
|
|
|
60
|
-
/**
|
|
61
|
-
* High-performance custom chess board built on Reanimated + Gesture Handler.
|
|
62
|
-
*
|
|
63
|
-
* Architecture:
|
|
64
|
-
* - 1 gesture handler (vs 32 in typical implementations)
|
|
65
|
-
* - ~40 components mounted (vs ~281)
|
|
66
|
-
* - ~75 native views (vs ~470)
|
|
67
|
-
* - 0 React Context providers
|
|
68
|
-
* - 0 re-renders during drag (pure worklet — only 2 shared value writes per frame)
|
|
69
|
-
*
|
|
70
|
-
* v0.2.0 layer stack (10 layers):
|
|
71
|
-
* 1. BoardBackground (64 squares)
|
|
72
|
-
* 2. BoardCoordinates (a-h, 1-8)
|
|
73
|
-
* 3. BoardHighlights (last move, check, selected, premove, custom, imperative)
|
|
74
|
-
* 4. DragTargetHighlight (animated, worklet-driven)
|
|
75
|
-
* 5. BoardLegalDots (legal move indicators)
|
|
76
|
-
* 6. BoardPiecesLayer (all pieces)
|
|
77
|
-
* 7. BoardArrows (SVG arrows + circles)
|
|
78
|
-
* 8. BoardAnnotations (text badges)
|
|
79
|
-
* 9. BoardDragGhost (floating piece)
|
|
80
|
-
* 10. PromotionPicker (modal, conditional)
|
|
60
|
+
/**
|
|
61
|
+
* High-performance custom chess board built on Reanimated + Gesture Handler.
|
|
62
|
+
*
|
|
63
|
+
* Architecture:
|
|
64
|
+
* - 1 gesture handler (vs 32 in typical implementations)
|
|
65
|
+
* - ~40 components mounted (vs ~281)
|
|
66
|
+
* - ~75 native views (vs ~470)
|
|
67
|
+
* - 0 React Context providers
|
|
68
|
+
* - 0 re-renders during drag (pure worklet — only 2 shared value writes per frame)
|
|
69
|
+
*
|
|
70
|
+
* v0.2.0 layer stack (10 layers):
|
|
71
|
+
* 1. BoardBackground (64 squares)
|
|
72
|
+
* 2. BoardCoordinates (a-h, 1-8)
|
|
73
|
+
* 3. BoardHighlights (last move, check, selected, premove, custom, imperative)
|
|
74
|
+
* 4. DragTargetHighlight (animated, worklet-driven)
|
|
75
|
+
* 5. BoardLegalDots (legal move indicators)
|
|
76
|
+
* 6. BoardPiecesLayer (all pieces)
|
|
77
|
+
* 7. BoardArrows (SVG arrows + circles)
|
|
78
|
+
* 8. BoardAnnotations (text badges)
|
|
79
|
+
* 9. BoardDragGhost (floating piece)
|
|
80
|
+
* 10. PromotionPicker (modal, conditional)
|
|
81
81
|
*/
|
|
82
82
|
export const Board = /*#__PURE__*/forwardRef(function Board({
|
|
83
83
|
fen,
|
|
@@ -116,6 +116,7 @@ export const Board = /*#__PURE__*/forwardRef(function Board({
|
|
|
116
116
|
animateFlip = true,
|
|
117
117
|
pieceExitAnimation,
|
|
118
118
|
// Promotion
|
|
119
|
+
autoPromoteTo,
|
|
119
120
|
onPromotion,
|
|
120
121
|
// Callbacks
|
|
121
122
|
onMove,
|
|
@@ -273,24 +274,44 @@ export const Board = /*#__PURE__*/forwardRef(function Board({
|
|
|
273
274
|
|
|
274
275
|
// Check for promotion
|
|
275
276
|
if (isPromotionMove(from, to)) {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
const
|
|
279
|
-
|
|
277
|
+
// 1. Auto-promote to a specific piece (no picker, no callback)
|
|
278
|
+
if (autoPromoteTo) {
|
|
279
|
+
const result = boardState.applyMove(from, to, autoPromoteTo);
|
|
280
|
+
if (result.applied && result.fen) {
|
|
281
|
+
setInternalFen(result.fen);
|
|
282
|
+
}
|
|
283
|
+
onMove?.({
|
|
280
284
|
from,
|
|
281
|
-
to
|
|
282
|
-
color
|
|
285
|
+
to
|
|
283
286
|
});
|
|
284
287
|
return;
|
|
285
288
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
if (
|
|
289
|
-
|
|
289
|
+
|
|
290
|
+
// 2. Consumer handles promotion UI externally via callback
|
|
291
|
+
if (onPromotion) {
|
|
292
|
+
try {
|
|
293
|
+
const choice = await onPromotion(from, to);
|
|
294
|
+
const result = boardState.applyMove(from, to, choice);
|
|
295
|
+
if (result.applied && result.fen) {
|
|
296
|
+
setInternalFen(result.fen);
|
|
297
|
+
}
|
|
298
|
+
onMove?.({
|
|
299
|
+
from,
|
|
300
|
+
to
|
|
301
|
+
});
|
|
302
|
+
} catch {
|
|
303
|
+
// Promotion cancelled by consumer — piece stays at origin
|
|
304
|
+
}
|
|
305
|
+
return;
|
|
290
306
|
}
|
|
291
|
-
|
|
307
|
+
|
|
308
|
+
// 3. Default: show built-in promotion picker
|
|
309
|
+
const piece = pieces.find(p => p.square === from);
|
|
310
|
+
const color = piece?.color ?? 'w';
|
|
311
|
+
setPromotionState({
|
|
292
312
|
from,
|
|
293
|
-
to
|
|
313
|
+
to,
|
|
314
|
+
color
|
|
294
315
|
});
|
|
295
316
|
return;
|
|
296
317
|
}
|
|
@@ -308,42 +329,26 @@ export const Board = /*#__PURE__*/forwardRef(function Board({
|
|
|
308
329
|
}
|
|
309
330
|
// If chess.js rejected the move (truly illegal), do nothing —
|
|
310
331
|
// piece stays at its original square.
|
|
311
|
-
}, [onMove, onPromotion, isPromotionMove, pieces, boardState]);
|
|
332
|
+
}, [onMove, onPromotion, autoPromoteTo, isPromotionMove, pieces, boardState]);
|
|
312
333
|
|
|
313
334
|
// --- Promotion picker handlers ---
|
|
314
|
-
|
|
335
|
+
// Only reached when neither autoPromoteTo nor onPromotion is set.
|
|
336
|
+
const handlePromotionSelect = useCallback(piece => {
|
|
315
337
|
if (!promotionState) return;
|
|
316
338
|
const {
|
|
317
339
|
from,
|
|
318
340
|
to
|
|
319
341
|
} = promotionState;
|
|
320
342
|
setPromotionState(null);
|
|
321
|
-
const
|
|
322
|
-
if (
|
|
323
|
-
|
|
324
|
-
const choice = await onPromotion(from, to);
|
|
325
|
-
const result = boardState.applyMove(from, to, choice);
|
|
326
|
-
if (result.applied && result.fen) {
|
|
327
|
-
setInternalFen(result.fen);
|
|
328
|
-
}
|
|
329
|
-
onMove?.({
|
|
330
|
-
from,
|
|
331
|
-
to
|
|
332
|
-
});
|
|
333
|
-
} catch {
|
|
334
|
-
// Promotion cancelled — piece stays at origin
|
|
335
|
-
}
|
|
336
|
-
} else {
|
|
337
|
-
const result = boardState.applyMove(from, to, promo);
|
|
338
|
-
if (result.applied && result.fen) {
|
|
339
|
-
setInternalFen(result.fen);
|
|
340
|
-
}
|
|
341
|
-
onMove?.({
|
|
342
|
-
from,
|
|
343
|
-
to
|
|
344
|
-
});
|
|
343
|
+
const result = boardState.applyMove(from, to, piece);
|
|
344
|
+
if (result.applied && result.fen) {
|
|
345
|
+
setInternalFen(result.fen);
|
|
345
346
|
}
|
|
346
|
-
|
|
347
|
+
onMove?.({
|
|
348
|
+
from,
|
|
349
|
+
to
|
|
350
|
+
});
|
|
351
|
+
}, [promotionState, onMove, boardState]);
|
|
347
352
|
const handlePromotionCancel = useCallback(() => {
|
|
348
353
|
setPromotionState(null);
|
|
349
354
|
}, []);
|