implements IPanelService {
public appendOutput(content: string): void {
const outputValue = this.outputEditorInstance?.getValue();
+ this.updateOutput({
+ id: PANEL_OUTPUT,
+ data: outputValue + content,
+ });
this.outputEditorInstance?.setValue(outputValue + content);
}
diff --git a/src/workbench/panel/output.tsx b/src/workbench/panel/output.tsx
index aade289bd..31964e015 100644
--- a/src/workbench/panel/output.tsx
+++ b/src/workbench/panel/output.tsx
@@ -6,7 +6,13 @@ import { MonacoEditor } from 'mo/components/monaco';
const defaultClassName = prefixClaName('output');
function Output(props: IOutput) {
- const { id, data = '', onUpdateEditorIns } = props;
+ const { id, data = '', onUpdateEditorIns, outputEditorInstance } = props;
+ const editorDidMount = React.useRef(false);
+
+ if (!editorDidMount.current && outputEditorInstance) {
+ outputEditorInstance.dispose();
+ }
+
return (
{
onUpdateEditorIns?.(editorInstance);
+ editorDidMount.current = true;
}}
/>