fix(BlockEditor): trigger select-all blocks when block content is empty on Ctrl+A
This commit is contained in:
@@ -158,17 +158,21 @@ const Block = forwardRef(function Block(
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const sel = window.getSelection();
|
const sel = window.getSelection();
|
||||||
const txt = el.textContent ?? '';
|
const txt = el.textContent ?? '';
|
||||||
const fullySelected =
|
if (txt.length === 0) {
|
||||||
!!sel && sel.rangeCount > 0 && !sel.isCollapsed &&
|
|
||||||
el.contains(sel.anchorNode) && el.contains(sel.focusNode) &&
|
|
||||||
sel.toString() === txt && txt.length > 0;
|
|
||||||
if (fullySelected) {
|
|
||||||
onSelectAllBlocks?.();
|
onSelectAllBlocks?.();
|
||||||
} else {
|
} else {
|
||||||
const range = document.createRange();
|
const fullySelected =
|
||||||
range.selectNodeContents(el);
|
!!sel && sel.rangeCount > 0 && !sel.isCollapsed &&
|
||||||
sel?.removeAllRanges();
|
el.contains(sel.anchorNode) && el.contains(sel.focusNode) &&
|
||||||
sel?.addRange(range);
|
sel.toString() === txt;
|
||||||
|
if (fullySelected) {
|
||||||
|
onSelectAllBlocks?.();
|
||||||
|
} else {
|
||||||
|
const range = document.createRange();
|
||||||
|
range.selectNodeContents(el);
|
||||||
|
sel?.removeAllRanges();
|
||||||
|
sel?.addRange(range);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user