diff --git a/src/app/App.tsx b/src/app/App.tsx
index 6d22f589..2c05fb0f 100644
--- a/src/app/App.tsx
+++ b/src/app/App.tsx
@@ -13,7 +13,6 @@ import { InstallPybricksDialog } from '../firmware/installPybricksDialog/Install
import RestoreOfficialDialog from '../firmware/restoreOfficialDialog/RestoreOfficialDialog';
import { useSettingIsShowDocsEnabled } from '../settings/hooks';
import StatusBar from '../status-bar/StatusBar';
-import Terminal from '../terminal/Terminal';
import Toolbar from '../toolbar/Toolbar';
import Tour from '../tour/Tour';
import { isMacOS } from '../utils/os';
@@ -32,6 +31,19 @@ const Editor = React.lazy(async () => {
return componentModule;
});
+const Terminal = React.lazy(async () => {
+ const [sagaModule, componentModule] = await Promise.all([
+ import('../terminal/sagas'),
+ import('../terminal/Terminal'),
+ ]);
+
+ window.dispatchEvent(
+ new CustomEvent('pb-lazy-saga', { detail: { saga: sagaModule.default } }),
+ );
+
+ return componentModule;
+});
+
const Docs: React.VFC = () => {
const { setIsSettingShowDocsEnabled } = useSettingIsShowDocsEnabled();
@@ -205,7 +217,11 @@ const App: React.VFC = () => {
-
+ }
+ >
+
+
diff --git a/src/editor/Editor.tsx b/src/editor/Editor.tsx
index b7eaa080..0676b023 100644
--- a/src/editor/Editor.tsx
+++ b/src/editor/Editor.tsx
@@ -27,7 +27,6 @@ import MonacoEditor, {
} from 'react-monaco-editor';
import { useDispatch } from 'react-redux';
import { useTernaryDarkMode } from 'usehooks-ts';
-import { IDisposable } from 'xterm';
import { UUID } from '../fileStorage';
import { useFileStoragePath } from '../fileStorage/hooks';
import { compile } from '../mpy/actions';
@@ -42,7 +41,7 @@ import { UntitledHintContribution } from './untitledHint';
monaco.languages.register({ id: pybricksMicroPythonId });
-const toDispose = new Array();
+const toDispose = new Array();
toDispose.push(
monaco.languages.setLanguageConfiguration(
pybricksMicroPythonId,
diff --git a/src/sagas.ts b/src/sagas.ts
index 8d809882..33ae0b9b 100644
--- a/src/sagas.ts
+++ b/src/sagas.ts
@@ -16,7 +16,7 @@ import lwp3BootloaderProtocol from './lwp3-bootloader/sagas';
import lwp3BootloaderBle from './lwp3-bootloader/sagas-ble';
import mpy from './mpy/sagas';
import notifications from './notifications/sagas';
-import terminal, { TerminalSagaContext } from './terminal/sagas';
+import type { TerminalSagaContext } from './terminal/sagas';
/**
* Listens to the 'pb-lazy-saga' event to spawn sagas from a React.lazy() initializer.
@@ -53,7 +53,6 @@ export default function* (): Generator {
hub(),
mpy(),
notifications(),
- terminal(),
lazySagas(),
]);
}