@netless/app-slide 0.2.44 → 0.2.45-alpha.2

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/app-slide",
3
- "version": "0.2.44",
3
+ "version": "0.2.45-alpha.2",
4
4
  "main": "dist/main.cjs.js",
5
5
  "module": "dist/main.es.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,6 +31,7 @@ export const EmptyAttributes: Attributes = {
31
31
  export interface SlideControllerOptions {
32
32
  context: AppContext<Attributes, MagixEvents, AppOptions>;
33
33
  anchor: HTMLDivElement;
34
+ onRenderStart: () => void;
34
35
  onRenderEnd: () => void;
35
36
  onPageChanged: (page: number) => void;
36
37
  onTransitionStart: () => void;
@@ -54,6 +55,7 @@ export class SlideController {
54
55
  private readonly player?: Player;
55
56
  private readonly sideEffect = new SideEffectManager();
56
57
 
58
+ private readonly onRenderStart: SlideControllerOptions["onRenderStart"];
57
59
  private readonly onPageChanged: SlideControllerOptions["onPageChanged"];
58
60
  private readonly onTransitionStart: SlideControllerOptions["onTransitionStart"];
59
61
  private readonly onTransitionEnd: SlideControllerOptions["onTransitionEnd"];
@@ -67,6 +69,7 @@ export class SlideController {
67
69
  public constructor({
68
70
  context,
69
71
  anchor,
72
+ onRenderStart,
70
73
  onPageChanged,
71
74
  onTransitionStart,
72
75
  onTransitionEnd,
@@ -74,6 +77,7 @@ export class SlideController {
74
77
  onRenderError,
75
78
  showRenderError,
76
79
  }: SlideControllerOptions) {
80
+ this.onRenderStart = onRenderStart
77
81
  this.onPageChanged = onPageChanged;
78
82
  this.onTransitionStart = onTransitionStart;
79
83
  this.onTransitionEnd = onTransitionEnd;
@@ -165,8 +169,8 @@ export class SlideController {
165
169
  })
166
170
  );
167
171
 
172
+ slide.on(SLIDE_EVENTS.renderStart, this.onRenderStart);
168
173
  slide.on(SLIDE_EVENTS.slideChange, this.onPageChanged);
169
- slide.on(SLIDE_EVENTS.renderStart, this.onTransitionStart);
170
174
  slide.on(SLIDE_EVENTS.renderEnd, this.onTransitionEnd);
171
175
  slide.on(SLIDE_EVENTS.mainSeqStepStart, this.onTransitionStart);
172
176
  slide.on(SLIDE_EVENTS.mainSeqStepEnd, this.onTransitionEnd);
@@ -146,6 +146,7 @@ export class SlideDocsViewer {
146
146
 
147
147
  this.slideController = this.mountSlideController({
148
148
  anchor: this.$slide,
149
+ onRenderStart: this.onRenderStart,
149
150
  onRenderEnd: this.onRenderEnd,
150
151
  onTransitionStart: this.viewer.setPlaying,
151
152
  onTransitionEnd: this.viewer.setPaused,
@@ -174,8 +175,19 @@ export class SlideDocsViewer {
174
175
  logger.warn("[Slide] render error", error);
175
176
  };
176
177
 
178
+ protected onRenderStart = () => {
179
+ this.$whiteboardView.classList.add(this.wrapClassName("wb-view-hidden"));
180
+ };
181
+
177
182
  protected onRenderEnd = () => {
183
+ // 1. There's no render end event on initial render.
184
+ // 2. The end event is fired before the page changed event.
185
+ // So in this callback we will do nothing and we do all "end" works in onPageChanged.
186
+ };
187
+
188
+ public onPageChanged = () => {
178
189
  this.$overlay.style.opacity = "";
190
+ this.$whiteboardView.classList.remove(this.wrapClassName("wb-view-hidden"));
179
191
  };
180
192
 
181
193
  protected refreshPages = () => {
@@ -8,6 +8,11 @@ $namespace: "netless-app-slide";
8
8
  height: 100%;
9
9
  z-index: 100;
10
10
  overflow: hidden;
11
+ transition: opacity 0.1s;
12
+ }
13
+
14
+ .#{$namespace}-wb-view-hidden {
15
+ opacity: 0;
11
16
  }
12
17
 
13
18
  .#{$namespace}-overlay {
package/src/index.ts CHANGED
@@ -131,6 +131,7 @@ const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, AppResult> = {
131
131
  }
132
132
  log("[Slide] page to", page, synced ? "(synced)" : "");
133
133
  docsViewer.viewer.setPageIndex(page - 1);
134
+ docsViewer.onPageChanged();
134
135
  }
135
136
  };
136
137