fix(BlockEditor): trigger select-all blocks when block content is empty on Ctrl+A

This commit is contained in:
2026-04-25 19:12:04 -04:00
parent 21634f5a38
commit d859874122
@@ -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;