Skip to content

Commit 479c32c

Browse files
hqer927haoran965
andauthored
Slide 0.2 (#55)
* feat: export DocsViewer for wukong * feat: extract public classes SlideControllerBase * feat: export SlideControllerBase * chore(slide): update slide version to 1.4.41 [0.2.83] (#54) * release:app-slide 0.2.84 --------- Co-authored-by: 浩然 <[email protected]>
1 parent a06219f commit 479c32c

File tree

3 files changed

+24
-22
lines changed

3 files changed

+24
-22
lines changed

packages/app-slide/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netless/app-slide",
3-
"version": "0.2.83",
3+
"version": "0.2.84",
44
"main": "dist/main.cjs.js",
55
"module": "dist/main.es.js",
66
"types": "dist/index.d.ts",

packages/app-slide/src/SlideController/index.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ type MagixEventListener = Parameters<
5555
AppContext<Attributes, MagixEvents>["addMagixEventListener"]
5656
>[1];
5757

58-
export class SlideController {
58+
59+
export class SlideControllerBase {
5960
public readonly context: SlideControllerOptions["context"];
60-
public readonly slide: Slide;
61+
public slide!: Slide;
6162
public readonly showRenderError: boolean;
6263
public readonly onRenderError?: (error: Error, pageIndex: number) => void;
63-
public readonly onNavigate: (index: number, origin?: string) => void;
64+
public readonly onNavigate!: (index: number, origin?: string) => void;
6465

6566
protected readonly room?: Room;
6667
protected readonly player?: Player;
@@ -82,19 +83,8 @@ export class SlideController {
8283
// 签名后的预览图
8384
public previewList: string[] = [];
8485

85-
public constructor({
86-
context,
87-
anchor,
88-
onRenderStart,
89-
onPageChanged,
90-
onTransitionStart,
91-
onTransitionEnd,
92-
onNavigate,
93-
onError,
94-
onRenderError,
95-
showRenderError,
96-
invisibleBehavior,
97-
}: SlideControllerOptions) {
86+
public constructor(props: SlideControllerOptions) {
87+
const { context, onRenderStart, onPageChanged, onTransitionStart, onTransitionEnd, onNavigate, onError, onRenderError, showRenderError, invisibleBehavior } = props;
9888
this.invisibleBehavior = invisibleBehavior ?? "frozen";
9989
this.onRenderStart = onRenderStart;
10090
this.onPageChanged = onPageChanged;
@@ -109,15 +99,15 @@ export class SlideController {
10999
this.room = context.getRoom();
110100
this.player = this.room ? undefined : (context.getDisplayer() as Player);
111101
setRoomLogger((this.room || this.player) as Displayer);
112-
this.slide = this.createSlide(anchor, {
113-
whiteTracker: getRoomTracker(context.getDisplayer()),
114-
});
102+
// this.slide = this.createSlide(anchor, {
103+
// whiteTracker: getRoomTracker(context.getDisplayer()),
104+
// });
115105

116106
// the adder does not need to sync state
117107
this.syncStateOnceFlag = !this.context.isAddApp;
118108
this.visible = document.visibilityState === "visible";
119109
this.savedIsFrozen = false;
120-
this.initialize();
110+
// this.initialize();
121111
}
122112

123113
public ready = false;
@@ -407,3 +397,13 @@ export class SlideController {
407397
}
408398
};
409399
}
400+
401+
export class SlideController extends SlideControllerBase {
402+
public constructor(props: SlideControllerOptions) {
403+
super(props)
404+
this.slide = this.createSlide(props.anchor, {
405+
whiteTracker: getRoomTracker(props.context.getDisplayer()),
406+
});
407+
this.initialize();
408+
}
409+
}

packages/app-slide/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
EmptyAttributes,
1313
syncSceneWithSlide,
1414
SlideController,
15+
SlideControllerBase
1516
} from "./SlideController";
1617
import { SlideDocsViewer } from "./SlideDocsViewer";
1718
import { apps, FreezerLength, addHooks, useFreezer } from "./utils/freezer";
@@ -20,9 +21,10 @@ import styles from "./style.scss?inline";
2021

2122
export type { PreviewParams } from "./SlidePreviewer";
2223
export { SlidePreviewer, default as previewSlide } from "./SlidePreviewer";
24+
export { DocsViewer } from "./DocsViewer";
2325

2426
export type { Attributes, AddHooks, FreezableSlide };
25-
export { Slide, SlideController, SlideDocsViewer, syncSceneWithSlide, SideEffectManager };
27+
export { Slide, SlideController, SlideDocsViewer, syncSceneWithSlide, SideEffectManager, SlideControllerBase };
2628
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2729
export const usePlugin: (plugin: any) => any = /* @__PURE__ */ Slide.usePlugin.bind(Slide);
2830

0 commit comments

Comments
 (0)