Skip to content

Commit aee8246

Browse files
committed
fix a race condition of changing editor value while loading monaco-valor
1 parent badaf6a commit aee8246

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/livecodes/editor/monaco/monaco.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,12 +430,16 @@ export const createEditor = async (options: EditorOptions): Promise<CodeEditor>
430430
const setLanguage = (lang: Language, value?: string) => {
431431
language = lang;
432432
clearTypes(false);
433-
if (monacoMapLanguage(lang) !== 'vue') {
434-
setModel(editor, value ?? editor.getValue(), language);
433+
const valueToIsert = value ?? editor.getValue();
434+
if (monacoMapLanguage(lang) === 'vue') {
435+
// avoid race condition of value changing while valor is loading
436+
setValue(valueToIsert);
437+
} else {
438+
setModel(editor, valueToIsert, language);
435439
}
436440
loadMonacoLanguage(lang).then(() => {
437441
if (monacoMapLanguage(lang) === 'vue') {
438-
setModel(editor, value ?? editor.getValue(), language);
442+
setModel(editor, editor.getValue(), language);
439443
}
440444
});
441445
};

0 commit comments

Comments
 (0)