恢复工具栏聚焦时撤销快捷键
将删除快捷键的交互控件过滤与撤销重做的可编辑目标过滤分离 避免按钮和链接聚焦时意外屏蔽 Ctrl/Cmd+Z/Y
This commit is contained in:
@@ -88,6 +88,13 @@ export default function UiEditorPage({
|
||||
}, [session.save.isDirty]);
|
||||
|
||||
useEffect(() => {
|
||||
const isEditableTarget = (target: EventTarget | null) => {
|
||||
const element = target instanceof HTMLElement ? target : null;
|
||||
return Boolean(
|
||||
element?.isContentEditable ||
|
||||
element?.closest('input, textarea, select, [contenteditable="true"]'),
|
||||
);
|
||||
};
|
||||
const isInteractiveTarget = (target: EventTarget | null) => {
|
||||
const element = target instanceof Element ? target : null;
|
||||
return Boolean(
|
||||
@@ -120,7 +127,7 @@ export default function UiEditorPage({
|
||||
if (
|
||||
event.repeat ||
|
||||
event.defaultPrevented ||
|
||||
isInteractiveTarget(event.target) ||
|
||||
isEditableTarget(event.target) ||
|
||||
(!event.ctrlKey && !event.metaKey)
|
||||
) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user