fix : promotion on piece drag
This commit is contained in:
@@ -86,7 +86,7 @@ export default function Board({
|
|||||||
return !!result;
|
return !!result;
|
||||||
};
|
};
|
||||||
|
|
||||||
const resetMoveClick = (square?: Square) => {
|
const resetMoveClick = (square?: Square | null) => {
|
||||||
setMoveClickFrom(square ?? null);
|
setMoveClickFrom(square ?? null);
|
||||||
setMoveClickTo(null);
|
setMoveClickTo(null);
|
||||||
setShowPromotionDialog(false);
|
setShowPromotionDialog(false);
|
||||||
@@ -150,17 +150,35 @@ export default function Board({
|
|||||||
resetMoveClick();
|
resetMoveClick();
|
||||||
};
|
};
|
||||||
|
|
||||||
const onPromotionPieceSelect = (piece?: PromotionPieceOption) => {
|
const onPromotionPieceSelect = (
|
||||||
if (piece && moveClickFrom && moveClickTo) {
|
piece?: PromotionPieceOption,
|
||||||
|
from?: Square,
|
||||||
|
to?: Square
|
||||||
|
) => {
|
||||||
|
if (!piece) return false;
|
||||||
|
const promotionPiece = piece[1]?.toLowerCase() ?? "q";
|
||||||
|
|
||||||
|
if (moveClickFrom && moveClickTo) {
|
||||||
const result = makeGameMove({
|
const result = makeGameMove({
|
||||||
from: moveClickFrom,
|
from: moveClickFrom,
|
||||||
to: moveClickTo,
|
to: moveClickTo,
|
||||||
promotion: piece[1]?.toLowerCase() ?? "q",
|
promotion: promotionPiece,
|
||||||
});
|
});
|
||||||
resetMoveClick();
|
resetMoveClick();
|
||||||
return !!result;
|
return !!result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (from && to) {
|
||||||
|
const result = makeGameMove({
|
||||||
|
from,
|
||||||
|
to,
|
||||||
|
promotion: promotionPiece,
|
||||||
|
});
|
||||||
|
resetMoveClick();
|
||||||
|
return !!result;
|
||||||
|
}
|
||||||
|
|
||||||
|
resetMoveClick(moveClickFrom);
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user