diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index c2ec3fe..949582c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -246,6 +246,7 @@ function App() { diff --git a/frontend/src/components/CodeMirror.tsx b/frontend/src/components/CodeMirror.tsx index 21008bc..0c268a5 100644 --- a/frontend/src/components/CodeMirror.tsx +++ b/frontend/src/components/CodeMirror.tsx @@ -15,9 +15,10 @@ import { html } from "@codemirror/lang-html"; interface Props { code: string; editorTheme: string; + onCodeChange: (code: string) => void; } -function CodeMirror({ code, editorTheme }: Props) { +function CodeMirror({ code, editorTheme, onCodeChange }: Props) { const ref = useRef(null); const view = useRef(null); @@ -42,6 +43,11 @@ function CodeMirror({ code, editorTheme }: Props) { html(), selectedTheme, EditorView.lineWrapping, + EditorView.updateListener.of(update => { + if (update.changes) { + onCodeChange(view.current?.state.doc.toString() || ""); + } + }), ], }), parent: ref.current as Element, @@ -69,3 +75,4 @@ function CodeMirror({ code, editorTheme }: Props) { } export default CodeMirror; +