feat: support edit code

This commit is contained in:
clean99 2023-11-21 09:40:00 +08:00
parent 9dfdc8683d
commit 30ab9e384a
2 changed files with 9 additions and 1 deletions

View File

@ -246,6 +246,7 @@ function App() {
<CodeMirror
code={generatedCode}
editorTheme={settings.editorTheme}
onCodeChange={setGeneratedCode}
/>
</TabsContent>
</Tabs>

View File

@ -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<HTMLDivElement>(null);
const view = useRef<EditorView | null>(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;