tbl.replaceChildren();
if (display_lines.length < 2) {
+ // Update the move highlight, as we've rewritten all the HTML.
+ update_move_highlight();
return;
}
fetch(backend_hash_url + "?fen=" + fen, { signal })
.then((response) => response.json())
.then((data) => { show_explore_hash_results(data, fen); })
- .catch((err) => {});
+ .catch((err) => {
+ // Truncate the lines, since we already cleared the display.
+ display_lines = [ display_lines[0], display_lines[1] ];
+ update_move_highlight();
+ });
}
/** Process the JSON response from a hash probe request.
}
let mousedownSquare = function(e) {
- if (!e.target || !e.target.matches('.square-55d63')) {
+ if (!e.target || !e.target.closest('.square-55d63')) {
return;
}
reverse_dragging_from = null;
- let square = e.target.getAttribute('data-square');
+ let square = e.target.closest('.square-55d63').getAttribute('data-square');
let pseudogame = new Chess(display_fen);
if (pseudogame.game_over() === true) {
}
let mouseupSquare = function(e) {
- if (!e.target || !e.target.matches('.square-55d63')) {
+ if (!e.target || !e.target.closest('.square-55d63')) {
return;
}
if (reverse_dragging_from === null) {
return;
}
- let source = e.target.getAttribute('data-square');
+ let source = e.target.closest('.square-55d63').getAttribute('data-square');
let target = reverse_dragging_from;
reverse_dragging_from = null;
if (onDrop(source, target) !== 'snapback') {
}
let line = display_lines[i];
if (line.pv[line.start_display_move_num] === move.san) {
- show_line(i, line.start_display_move_num);
+ show_line(i, 0);
return;
}
}