Skip to content
This repository was archived by the owner on May 18, 2026. It is now read-only.

Commit 4627f59

Browse files
committed
fix: access extensionManager directly from vm instead of runtime
1 parent 8c72c0a commit 4627f59

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

src/components/menu-bar/menu-bar.jsx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -259,26 +259,38 @@ class MenuBar extends React.Component {
259259
}
260260
getMeshV2Status () {
261261
const vm = this.props.vm;
262-
if (!vm.runtime || !vm.runtime.extensionManager) {
263-
console.log('MenuBar: getMeshV2Status - vm.runtime or extensionManager missing');
262+
263+
console.log('MenuBar: getMeshV2Status - vm:', vm);
264+
if (!vm) return {loaded: false};
265+
266+
// In Smalruby 3 / Scratch 3, extensionManager is directly on the vm instance
267+
const extensionManager = vm.extensionManager;
268+
if (!extensionManager) {
269+
console.log('MenuBar: getMeshV2Status - extensionManager missing on vm');
264270
return {loaded: false};
265271
}
266272

267-
const loadedExtensions = Array.from(vm.runtime.extensionManager._loadedExtensions.keys());
273+
const loadedExtensions = Array.from(extensionManager._loadedExtensions.keys());
268274
console.log('MenuBar: getMeshV2Status - Loaded extensions:', loadedExtensions);
269275

270-
const isLoaded = vm.runtime.extensionManager.isExtensionLoaded('meshV2');
276+
const isLoaded = extensionManager.isExtensionLoaded('meshV2');
271277
console.log('MenuBar: getMeshV2Status - isLoaded(meshV2):', isLoaded);
272278

273279
if (!isLoaded) {
274280
return {loaded: false};
275281
}
276282

277-
// Get extension instance
278-
const peripheralExtensions = Object.keys(vm.runtime.peripheralExtensions || {});
283+
// peripheralExtensions is on vm.runtime
284+
const runtime = vm.runtime;
285+
if (!runtime || !runtime.peripheralExtensions) {
286+
console.log('MenuBar: getMeshV2Status - runtime or peripheralExtensions missing');
287+
return {loaded: true, connected: false};
288+
}
289+
290+
const peripheralExtensions = Object.keys(runtime.peripheralExtensions || {});
279291
console.log('MenuBar: getMeshV2Status - Peripheral extensions:', peripheralExtensions);
280292

281-
const extension = vm.runtime.peripheralExtensions.meshV2;
293+
const extension = runtime.peripheralExtensions.meshV2;
282294
console.log('MenuBar: getMeshV2Status - meshV2 extension instance:', extension);
283295

284296
if (!extension) {

0 commit comments

Comments
 (0)