@typefox/monaco-editor-react 7.3.0-next.0 → 7.3.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,9 +2,10 @@
2
2
 
3
3
  All notable changes to npm module [@typefox/monaco-editor-react](https://www.npmjs.com/package/@typefox/monaco-editor-react) are documented in this file.
4
4
 
5
- ## [7.3.0-next.0] - 2025-11-03
5
+ ## [7.3.0-next.1] - 2025-11-05
6
6
 
7
- - Updated to `monaco-languageclient@10.3.0-next.0`.
7
+ - Fixed re-rendering issues with React StrictMode [#986](https://github.com/TypeFox/monaco-languageclient/pull/986).
8
+ - Updated to `monaco-languageclient@10.3.0-next.1`.
8
9
  - Updated all `@codingame/monaco-vscode` packages to `22.1.4`.
9
10
 
10
11
  ## [7.2.0] - 2025-10-20
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAC1I,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAqB,MAAM,OAAO,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAA;AAKD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAmQ7D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,KAAK,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACnG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAC1I,OAAO,KAAK,EAAE,EAAE,KAAK,aAAa,EAAqB,MAAM,OAAO,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAElE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,qBAAqB,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,mBAAmB,CAAC,EAAE,CAAC,sBAAsB,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACpD,0BAA0B,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC1E,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAA;AAaD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAkQ7D,CAAC"}
package/lib/index.js CHANGED
@@ -6,25 +6,27 @@ import { EditorApp } from 'monaco-languageclient/editorApp';
6
6
  import { LanguageClientManager } from 'monaco-languageclient/lcwrapper';
7
7
  import { getEnhancedMonacoEnvironment, MonacoVscodeApiWrapper } from 'monaco-languageclient/vscodeApiWrapper';
8
8
  import React, { useEffect, useRef } from 'react';
9
- // this must be outside of the component as this is valid across multiple instances
9
+ // All must be outside of the component as they ars valid across all instances and should not be re-created
10
+ let apiWrapper;
10
11
  const lcsManager = new LanguageClientManager();
12
+ const haveEditorService = () => {
13
+ return apiWrapper?.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService';
14
+ };
15
+ const runQueue = [];
16
+ let queueAwait = undefined;
17
+ let queueResolve = undefined;
11
18
  export const MonacoEditorReactComp = (props) => {
12
19
  const { style, className, vscodeApiConfig, editorAppConfig, languageClientConfig, enforceDisposeLanguageClient, onVscodeApiInitDone, onEditorStartDone, onLanguageClientsStartDone, onTextChanged, onError, onDisposeEditor, onDisposeLanguageClient, modifiedTextValue, originalTextValue } = props;
13
- const apiWrapperRef = useRef(new MonacoVscodeApiWrapper(vscodeApiConfig));
14
- const haveEditorService = useRef(true);
15
20
  const currentEditorConfig = useRef(undefined);
16
- const editorAppRef = useRef(null);
21
+ const editorAppRef = useRef(undefined);
17
22
  const containerRef = useRef(null);
18
23
  const onTextChangedRef = useRef(onTextChanged);
19
24
  const modifiedCode = useRef(modifiedTextValue);
20
25
  const originalCode = useRef(originalTextValue);
21
- const runQueue = useRef([]);
22
- let queueAwait = undefined;
23
- let queueResolve = undefined;
24
26
  const addQueue = (id, func) => {
25
27
  debugLogging(`Adding to queue: ${id}`);
26
- debugLogging(`QUEUE SIZE before: ${runQueue.current.length}`);
27
- runQueue.current.push({ id, func });
28
+ debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
29
+ runQueue.push({ id, func });
28
30
  };
29
31
  const triggerQueue = () => {
30
32
  setInterval(() => {
@@ -37,12 +39,13 @@ export const MonacoEditorReactComp = (props) => {
37
39
  }, 50);
38
40
  };
39
41
  const executeQueue = async () => {
40
- while (runQueue.current.length > 0) {
41
- const queueObj = runQueue.current.shift();
42
+ while (runQueue.length > 0) {
43
+ const queueObj = runQueue.shift();
42
44
  if (queueObj !== undefined) {
45
+ debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
43
46
  debugLogging(`QUEUE ${queueObj.id} start`, true);
44
47
  await queueObj.func();
45
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.current.length}`);
48
+ debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
46
49
  debugLogging(`QUEUE ${queueObj.id} end`);
47
50
  }
48
51
  }
@@ -52,10 +55,10 @@ export const MonacoEditorReactComp = (props) => {
52
55
  };
53
56
  const debugLogging = (id, useTime) => {
54
57
  if (useTime === true) {
55
- apiWrapperRef.current.getLogger().debug(`${id}: ${Date.now()}`);
58
+ apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
56
59
  }
57
60
  else {
58
- apiWrapperRef.current.getLogger().debug(id);
61
+ apiWrapper?.getLogger().debug(id);
59
62
  }
60
63
  };
61
64
  const performErrorHandling = (error) => {
@@ -68,14 +71,14 @@ export const MonacoEditorReactComp = (props) => {
68
71
  };
69
72
  useEffect(() => {
70
73
  // this is only available if EditorService is configured
71
- if (modifiedTextValue !== undefined && haveEditorService.current) {
74
+ if (haveEditorService() && modifiedTextValue !== undefined) {
72
75
  modifiedCode.current = modifiedTextValue;
73
76
  editorAppRef.current?.updateCode({ modified: modifiedTextValue });
74
77
  }
75
78
  }, [modifiedTextValue]);
76
79
  useEffect(() => {
77
80
  // this is only available if EditorService is configured
78
- if (originalTextValue !== undefined && haveEditorService.current) {
81
+ if (haveEditorService() && originalTextValue !== undefined) {
79
82
  originalCode.current = originalTextValue;
80
83
  editorAppRef.current?.updateCode({ original: originalTextValue });
81
84
  }
@@ -87,19 +90,27 @@ export const MonacoEditorReactComp = (props) => {
87
90
  const envEnhanced = getEnhancedMonacoEnvironment();
88
91
  // init will only performed once
89
92
  if (envEnhanced.vscodeApiInitialising !== true) {
93
+ apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
90
94
  const globalInitFunc = async () => {
91
- debugLogging('GLOBAL INIT', true);
92
- apiWrapperRef.current.overrideViewsConfig({
93
- $type: apiWrapperRef.current.getMonacoVscodeApiConfig().viewsConfig.$type,
94
- htmlContainer: containerRef.current
95
- });
96
- await apiWrapperRef.current.start();
97
- // set if editor mode is available, otherwise text bindings will not work
98
- haveEditorService.current = envEnhanced.viewServiceType === 'EditorService';
99
- lcsManager.setLogger(apiWrapperRef.current.getLogger());
100
- onVscodeApiInitDone?.(apiWrapperRef.current);
101
- triggerQueue();
102
- debugLogging('GLOBAL INIT DONE', true);
95
+ try {
96
+ debugLogging('GLOBAL INIT', true);
97
+ if (apiWrapper === undefined)
98
+ throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
99
+ if (haveEditorService()) {
100
+ apiWrapper.overrideViewsConfig({
101
+ $type: 'EditorService',
102
+ htmlContainer: containerRef.current
103
+ });
104
+ }
105
+ await apiWrapper.start();
106
+ lcsManager.setLogger(apiWrapper.getLogger());
107
+ onVscodeApiInitDone?.(apiWrapper);
108
+ triggerQueue();
109
+ debugLogging('GLOBAL INIT DONE', true);
110
+ }
111
+ catch (error) {
112
+ performErrorHandling(error);
113
+ }
103
114
  };
104
115
  globalInitFunc();
105
116
  }
@@ -113,15 +124,14 @@ export const MonacoEditorReactComp = (props) => {
113
124
  return;
114
125
  // always try to perform global init. Reason: we cannot ensure order
115
126
  performGlobalInit();
116
- let createEditor = false;
117
- // it is possible to run without an editorApp, for example when using the ViewsService
118
- if (haveEditorService.current) {
119
- createEditor = currentEditorConfig.current === undefined || JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
120
- }
127
+ // re-create editor if config changed
128
+ const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
129
+ JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
121
130
  const editorInitFunc = async () => {
122
131
  try {
123
132
  debugLogging('INIT', true);
124
- if (createEditor) {
133
+ // it is possible to run without an editorApp, for example when using the ViewsService
134
+ if (recreateEditor && haveEditorService()) {
125
135
  debugLogging('INIT: Creating editor', true);
126
136
  editorAppRef.current?.dispose();
127
137
  currentEditorConfig.current = editorAppConfig;
@@ -184,8 +194,8 @@ export const MonacoEditorReactComp = (props) => {
184
194
  // dispose editor if used
185
195
  debugLogging('DISPOSE', true);
186
196
  await editorAppRef.current?.dispose();
197
+ editorAppRef.current = undefined;
187
198
  onDisposeEditor?.();
188
- editorAppRef.current = null;
189
199
  debugLogging('DISPOSE DONE', true);
190
200
  };
191
201
  addQueue('dispose', disposeFunc);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typefox/monaco-editor-react",
3
- "version": "7.3.0-next.0",
3
+ "version": "7.3.0-next.1",
4
4
  "license": "MIT",
5
5
  "description": "React component for Monaco-Editor and Monaco Languageclient",
6
6
  "keywords": [
@@ -46,7 +46,7 @@
46
46
  "npm": "10.9.3"
47
47
  },
48
48
  "dependencies": {
49
- "@codingame/monaco-vscode-editor-api": "^22.1.3",
49
+ "@codingame/monaco-vscode-editor-api": "^22.1.4",
50
50
  "react": ">=18.0.0 || <20.0.0"
51
51
  },
52
52
  "repository": {
package/src/index.tsx CHANGED
@@ -28,8 +28,16 @@ export type MonacoEditorProps = {
28
28
  originalTextValue?: string;
29
29
  }
30
30
 
31
- // this must be outside of the component as this is valid across multiple instances
31
+ // All must be outside of the component as they ars valid across all instances and should not be re-created
32
+ let apiWrapper: MonacoVscodeApiWrapper | undefined;
32
33
  const lcsManager = new LanguageClientManager();
34
+ const haveEditorService = () => {
35
+ return apiWrapper?.getMonacoVscodeApiConfig().viewsConfig.$type === 'EditorService';
36
+ };
37
+
38
+ const runQueue: Array<{id: string, func: () => Promise<void>}> = [];
39
+ let queueAwait: Promise<void> | undefined = undefined;
40
+ let queueResolve: ((value: void | PromiseLike<void>) => void) | undefined = undefined;
33
41
 
34
42
  export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
35
43
  const {
@@ -50,23 +58,17 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
50
58
  originalTextValue
51
59
  } = props;
52
60
 
53
- const apiWrapperRef = useRef<MonacoVscodeApiWrapper>(new MonacoVscodeApiWrapper(vscodeApiConfig));
54
- const haveEditorService = useRef(true);
55
61
  const currentEditorConfig = useRef<EditorAppConfig | undefined>(undefined);
56
- const editorAppRef = useRef<EditorApp>(null);
62
+ const editorAppRef = useRef<EditorApp>(undefined);
57
63
  const containerRef = useRef<HTMLDivElement>(null);
58
64
  const onTextChangedRef = useRef(onTextChanged);
59
65
  const modifiedCode = useRef<string>(modifiedTextValue);
60
66
  const originalCode = useRef<string>(originalTextValue);
61
67
 
62
- const runQueue = useRef<Array<{id: string, func: () => Promise<void>}>>([]);
63
- let queueAwait: Promise<void> | undefined = undefined;
64
- let queueResolve: ((value: void | PromiseLike<void>) => void) | undefined = undefined;
65
-
66
68
  const addQueue = (id: string, func: () => Promise<void>) => {
67
69
  debugLogging(`Adding to queue: ${id}`);
68
- debugLogging(`QUEUE SIZE before: ${runQueue.current.length}`);
69
- runQueue.current.push({id, func});
70
+ debugLogging(`QUEUE SIZE before: ${runQueue.length}`);
71
+ runQueue.push({id, func});
70
72
  };
71
73
 
72
74
  const triggerQueue = () => {
@@ -81,12 +83,13 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
81
83
  };
82
84
 
83
85
  const executeQueue = async () => {
84
- while (runQueue.current.length > 0) {
85
- const queueObj = runQueue.current.shift();
86
+ while (runQueue.length > 0) {
87
+ const queueObj = runQueue.shift();
86
88
  if (queueObj !== undefined) {
89
+ debugLogging(`QUEUE ${queueObj.id} SIZE before: ${runQueue.length}`);
87
90
  debugLogging(`QUEUE ${queueObj.id} start`, true);
88
91
  await queueObj.func();
89
- debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.current.length}`);
92
+ debugLogging(`QUEUE ${queueObj.id} SIZE after: ${runQueue.length}`);
90
93
  debugLogging(`QUEUE ${queueObj.id} end`);
91
94
  }
92
95
  }
@@ -97,9 +100,9 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
97
100
 
98
101
  const debugLogging = (id: string, useTime?: boolean) => {
99
102
  if (useTime === true) {
100
- apiWrapperRef.current.getLogger().debug(`${id}: ${Date.now()}`);
103
+ apiWrapper?.getLogger().debug(`${id}: ${Date.now()}`);
101
104
  } else {
102
- apiWrapperRef.current.getLogger().debug(id);
105
+ apiWrapper?.getLogger().debug(id);
103
106
  }
104
107
  };
105
108
 
@@ -113,7 +116,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
113
116
 
114
117
  useEffect(() => {
115
118
  // this is only available if EditorService is configured
116
- if (modifiedTextValue !== undefined && haveEditorService.current) {
119
+ if (haveEditorService() && modifiedTextValue !== undefined) {
117
120
  modifiedCode.current = modifiedTextValue;
118
121
  editorAppRef.current?.updateCode({modified: modifiedTextValue});
119
122
  }
@@ -121,7 +124,7 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
121
124
 
122
125
  useEffect(() => {
123
126
  // this is only available if EditorService is configured
124
- if (originalTextValue !== undefined && haveEditorService.current) {
127
+ if (haveEditorService() && originalTextValue !== undefined) {
125
128
  originalCode.current = originalTextValue;
126
129
  editorAppRef.current?.updateCode({original: originalTextValue});
127
130
  }
@@ -136,22 +139,28 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
136
139
  // init will only performed once
137
140
  if (envEnhanced.vscodeApiInitialising !== true) {
138
141
 
142
+ apiWrapper = new MonacoVscodeApiWrapper(vscodeApiConfig);
139
143
  const globalInitFunc = async () => {
140
- debugLogging('GLOBAL INIT', true);
141
-
142
- apiWrapperRef.current.overrideViewsConfig({
143
- $type: apiWrapperRef.current.getMonacoVscodeApiConfig().viewsConfig.$type,
144
- htmlContainer: containerRef.current!
145
- });
146
- await apiWrapperRef.current.start();
144
+ try {
145
+ debugLogging('GLOBAL INIT', true);
146
+ if (apiWrapper === undefined) throw new Error('Unexpected error occurred: apiWrapper is not available! Aborting...');
147
+
148
+ if (haveEditorService()) {
149
+ apiWrapper.overrideViewsConfig({
150
+ $type: 'EditorService',
151
+ htmlContainer: containerRef.current!
152
+ });
153
+ }
154
+ await apiWrapper.start();
147
155
 
148
- // set if editor mode is available, otherwise text bindings will not work
149
- haveEditorService.current = envEnhanced.viewServiceType === 'EditorService';
150
- lcsManager.setLogger(apiWrapperRef.current.getLogger());
156
+ lcsManager.setLogger(apiWrapper.getLogger());
151
157
 
152
- onVscodeApiInitDone?.(apiWrapperRef.current);
153
- triggerQueue();
154
- debugLogging('GLOBAL INIT DONE', true);
158
+ onVscodeApiInitDone?.(apiWrapper);
159
+ triggerQueue();
160
+ debugLogging('GLOBAL INIT DONE', true);
161
+ } catch (error) {
162
+ performErrorHandling(error as Error);
163
+ }
155
164
  };
156
165
  globalInitFunc();
157
166
  } else if (envEnhanced.vscodeApiInitialised === true) {
@@ -166,17 +175,15 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
166
175
  // always try to perform global init. Reason: we cannot ensure order
167
176
  performGlobalInit();
168
177
 
169
- let createEditor = false;
170
- // it is possible to run without an editorApp, for example when using the ViewsService
171
- if (haveEditorService.current) {
172
- createEditor = currentEditorConfig.current === undefined || JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
173
- }
174
-
178
+ // re-create editor if config changed
179
+ const recreateEditor = editorAppRef.current === undefined || currentEditorConfig.current === undefined ||
180
+ JSON.stringify(editorAppConfig) !== JSON.stringify(currentEditorConfig.current);
175
181
  const editorInitFunc = async () => {
176
182
  try {
177
183
  debugLogging('INIT', true);
178
184
 
179
- if (createEditor) {
185
+ // it is possible to run without an editorApp, for example when using the ViewsService
186
+ if (recreateEditor && haveEditorService()) {
180
187
  debugLogging('INIT: Creating editor', true);
181
188
 
182
189
  editorAppRef.current?.dispose();
@@ -251,8 +258,8 @@ export const MonacoEditorReactComp: React.FC<MonacoEditorProps> = (props) => {
251
258
  debugLogging('DISPOSE', true);
252
259
 
253
260
  await editorAppRef.current?.dispose();
261
+ editorAppRef.current = undefined;
254
262
  onDisposeEditor?.();
255
- editorAppRef.current = null;
256
263
 
257
264
  debugLogging('DISPOSE DONE', true);
258
265
  };