refator(code-editor): make CodeEditor feature based component

- replaced interfaces with types from main-content types
This commit is contained in:
Haileyesus
2026-02-20 08:55:28 +03:00
parent bf4bc361bc
commit b63d827ccc
21 changed files with 1369 additions and 950 deletions

View File

@@ -0,0 +1,34 @@
import { useEffect } from 'react';
type UseEditorKeyboardShortcutsParams = {
onSave: () => void;
onClose: () => void;
dependency: string;
};
export const useEditorKeyboardShortcuts = ({
onSave,
onClose,
dependency,
}: UseEditorKeyboardShortcutsParams) => {
useEffect(() => {
const handleKeyDown = (event: KeyboardEvent) => {
if (!(event.ctrlKey || event.metaKey)) {
return;
}
if (event.key === 's') {
event.preventDefault();
onSave();
} else if (event.key === 'Escape') {
event.preventDefault();
onClose();
}
};
document.addEventListener('keydown', handleKeyDown);
return () => {
document.removeEventListener('keydown', handleKeyDown);
};
}, [dependency, onClose, onSave]);
};