fix: cleanup keybinding events

This commit is contained in:
Felix Roos 2026-02-13 09:37:34 +01:00
parent bdeafbaf75
commit 9bc560b17f
No known key found for this signature in database
5 changed files with 25 additions and 33 deletions

View file

@ -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);

View file

@ -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;