@netless/window-manager 0.4.0-canary.12 → 0.4.0-canary.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/window-manager",
3
- "version": "0.4.0-canary.12",
3
+ "version": "0.4.0-canary.13",
4
4
  "description": "",
5
5
  "main": "dist/index.es.js",
6
6
  "module": "dist/index.es.js",
@@ -50,13 +50,15 @@ export type MagixEventHandler<
50
50
  TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
51
51
  > = (message: MagixEventMessage<TPayloads, TEvent>) => void;
52
52
 
53
+ export type MagixEventListenerDisposer = () => void
54
+
53
55
  export type MagixEventAddListener<TPayloads = any> = <
54
56
  TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
55
57
  >(
56
58
  event: TEvent,
57
59
  handler: MagixEventHandler<TPayloads, TEvent>,
58
60
  options?: MagixEventListenerOptions | undefined
59
- ) => void;
61
+ ) => MagixEventListenerDisposer;
60
62
 
61
63
  export type MagixEventRemoveListener<TPayloads = any> = <
62
64
  TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
package/src/AppContext.ts CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  toJS
9
9
  } from 'white-web-sdk';
10
10
  import { BoxNotCreatedError } from './Utils/error';
11
- import type { Room, SceneDefinition, View } from "white-web-sdk";
11
+ import type { Room, SceneDefinition, View, EventListener as WhiteEventListener } from "white-web-sdk";
12
12
  import type { ReadonlyTeleBox } from "@netless/telebox-insider";
13
13
  import type Emittery from "emittery";
14
14
  import type { BoxManager } from "./BoxManager";
@@ -158,7 +158,10 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
158
158
  public dispatchMagixEvent: MagixEventDispatcher<TMagixEventPayloads> = (this.manager.displayer as Room).dispatchMagixEvent.bind(this.manager.displayer)
159
159
 
160
160
  /** Listen to events from others clients (and self messages). */
161
- public addMagixEventListener: MagixEventAddListener<TMagixEventPayloads> = this.manager.displayer.addMagixEventListener.bind(this.manager.displayer)
161
+ public addMagixEventListener: MagixEventAddListener<TMagixEventPayloads> = (event, handler, options) => {
162
+ this.manager.displayer.addMagixEventListener(event, handler as WhiteEventListener, options);
163
+ return () => this.manager.displayer.removeMagixEventListener(event, handler as WhiteEventListener);
164
+ }
162
165
 
163
166
  /** Remove a Magix event listener. */
164
167
  public removeMagixEventListener = this.manager.displayer.removeMagixEventListener.bind(this.manager.displayer) as MagixEventRemoveListener<TMagixEventPayloads>
package/src/AppProxy.ts CHANGED
@@ -327,7 +327,7 @@ export class AppProxy extends Base {
327
327
  });
328
328
  this.manager.refresher?.add(`${appId}-fullPath`, () => {
329
329
  return autorun(() => {
330
- const fullPath = this.appAttributes.fullPath;
330
+ const fullPath = this.appAttributes?.fullPath;
331
331
  this.setFocusScenePathHandler(fullPath);
332
332
  });
333
333
  });
@@ -51,6 +51,7 @@ export const replaceRoomFunction = (room: Room, manager: WindowManager) => {
51
51
  room.setMemberState = (...args) => manager.mainView.setMemberState(...args);
52
52
  room.redo = () => manager.mainView.redo();
53
53
  room.undo = () => manager.mainView.undo();
54
+ room.cleanCurrentScene = () => manager.mainView.cleanCurrentScene();
54
55
  }
55
56
 
56
57
  };