UNPKG

chessground

Version:
37 lines (30 loc) 858 B
import { State } from './state.js'; import * as cg from './types.js'; import * as board from './board.js'; import * as util from './util.js'; import { cancel as dragCancel } from './drag.js'; export function setDropMode(s: State, piece?: cg.Piece): void { s.dropmode = { active: true, piece, }; dragCancel(s); } export function cancelDropMode(s: State): void { s.dropmode = { active: false, }; } export function drop(s: State, e: cg.MouchEvent): void { if (!s.dropmode.active) return; board.unsetPremove(s); board.unsetPredrop(s); const piece = s.dropmode.piece; if (piece) { s.pieces.set('a0', piece); const position = util.eventPosition(e); const dest = position && board.getKeyAtDomPos(position, board.whitePov(s), s.dom.bounds()); if (dest) board.dropNewPiece(s, 'a0', dest); } s.dom.redraw(); }