owl-rich-table
Version:
富文本编辑表格,react组件
29 lines • 990 B
JavaScript
import { useCallback, useEffect } from 'react';
/**
* redo和undo的注册
*/
export default function useDo(dispatch) {
var keyDownFn = useCallback(function (event) {
var undoKey = event.key === 'z' && (event.ctrlKey && !event.metaKey || event.metaKey && !event.ctrlKey) && !event.altKey;
var redoKey = event.key === 'z' && event.ctrlKey && event.shiftKey || event.key === 'y' && (event.ctrlKey || event.metaKey);
if (!undoKey && !redoKey) return;
if (event.key === 'z') {
// 撤销 (undo) 操作
if (event.shiftKey) {
dispatch.redo();
} else {
dispatch.undo();
}
event.preventDefault(); // 阻止浏览器默认行为
return;
}
dispatch.redo();
event.preventDefault(); // 阻止浏览器默认行为
}, [dispatch]);
useEffect(function () {
document.addEventListener('keydown', keyDownFn);
return function () {
window.removeEventListener('keydown', keyDownFn);
};
}, [keyDownFn]);
}