fix: cleanup keybinding events
This commit is contained in:
parent
bdeafbaf75
commit
9bc560b17f
5 changed files with 25 additions and 33 deletions
|
|
@ -379,6 +379,9 @@ function PrebakeSettingsContent() {
|
|||
e?.cancelable && e.preventDefault?.();
|
||||
};
|
||||
const handleToggleComment = (e) => {
|
||||
if (e.detail.view !== editorRef.current.view) {
|
||||
return; // ignore events from other editors
|
||||
}
|
||||
editorRef.current?.toggleComment();
|
||||
e?.cancelable && e.preventDefault?.();
|
||||
};
|
||||
|
|
@ -386,8 +389,8 @@ function PrebakeSettingsContent() {
|
|||
editorRef.current?.setCode(code);
|
||||
};
|
||||
useEffect(() => {
|
||||
document.addEventListener('prebake-evaluate', handleSaveEvent);
|
||||
document.addEventListener('prebake-toggle-comment', handleToggleComment);
|
||||
document.addEventListener('repl-evaluate', handleSaveEvent);
|
||||
document.addEventListener('repl-toggle-comment', handleToggleComment);
|
||||
return () => {
|
||||
document.removeEventListener('prebake-evaluate', handleSaveEvent);
|
||||
document.removeEventListener('prebake-toggle-comment', handleToggleComment);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language'
|
|||
import { Compartment, EditorState, Prec } from '@codemirror/state';
|
||||
import { drawSelection, EditorView, keymap } from '@codemirror/view';
|
||||
import { logger } from '@strudel/core';
|
||||
import { basicSetup, flash, prebakeField, initTheme, extensions, parseBooleans } from '@strudel/codemirror';
|
||||
import { basicSetup, flash, initTheme, extensions, parseBooleans } from '@strudel/codemirror';
|
||||
|
||||
export class PrebakeCodeMirror {
|
||||
constructor(initialCode, storePrebake, containerRef, editorRef, settings) {
|
||||
|
|
@ -53,7 +53,6 @@ export class PrebakeCodeMirror {
|
|||
},
|
||||
]),
|
||||
),
|
||||
prebakeField,
|
||||
],
|
||||
});
|
||||
editorRef.current = state;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue