Fixed a bug with codemirror saving changes

This commit is contained in:
2024-05-03 21:07:45 -05:00
parent bde91901e2
commit 473d7bd88c
+6 -3
View File
@@ -7,7 +7,7 @@ import {StreamLanguage} from '@codemirror/language'
import {gruvboxDark} from 'cm6-theme-gruvbox-dark' import {gruvboxDark} from 'cm6-theme-gruvbox-dark'
import ForgeHighlighter from './forge_highlighter' import ForgeHighlighter from './forge_highlighter'
export default function ForgeEditor({ src, updateSrc }) { export default function ForgeEditor({ src, updateSrc, fileName }) {
const editor = useRef(null) const editor = useRef(null)
const container = useRef(null) const container = useRef(null)
@@ -19,13 +19,16 @@ export default function ForgeEditor({ src, updateSrc }) {
keymap.of([indentWithTab]), keymap.of([indentWithTab]),
gruvboxDark, gruvboxDark,
EditorView.updateListener.of((update) => { EditorView.updateListener.of((update) => {
updateSrc(update.state.doc.text.join('\n')) updateSrc(update.state.doc.toString())
}), }),
StreamLanguage.define(ForgeHighlighter) StreamLanguage.define(ForgeHighlighter)
], ],
parent: container.current parent: container.current
}) })
}, [])
// Destroy the editor when we re-fire this, which is when the filename changes
return () => (container.current && container.current.children[0].remove())
}, [fileName])
return <div className='editor' ref={container}/> return <div className='editor' ref={container}/>
} }