Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.

Commit 7f2b031

Browse files
fix(#33): lazy load first slides when all slides are added
1 parent f00dd2d commit 7f2b031

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/components/deck/deckdeckgo-deck/deckdeckgo-deck.tsx

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,7 @@ export class DeckdeckgoDeck {
4545
this.initWindowResize();
4646
this.initKeyboardAssist();
4747

48-
const lazyLoadContentFirstSlide = this.lazyLoadContent(0);
49-
const lazyLoadContentSecondSlide = this.lazyLoadContent(1);
50-
const lazyLoadImages = this.lazyBackgroungImages();
51-
52-
await Promise.all([lazyLoadContentFirstSlide, lazyLoadContentSecondSlide, lazyLoadImages]);
48+
await this.lazyBackgroungImages();
5349
}
5450

5551
private initWindowResize() {
@@ -259,17 +255,31 @@ export class DeckdeckgoDeck {
259255

260256
const definedSlidesLength: number = await this.countDefinedSlides(definedSlides);
261257

258+
// Are all slides loaded?
262259
if (definedSlides && loadedSlides && loadedSlides.length === definedSlidesLength && definedSlidesLength === this.length) {
263260
const orderedSlidesTagNames: string[] = Array.from(loadedSlides).map((slide: HTMLElement) => {
264261
return slide.tagName
265262
});
266263
this.slidesDidLoad.emit(orderedSlidesTagNames);
264+
265+
await this.lazyLoadFirstSlides();
267266
}
268267

269268
resolve();
270269
});
271270
}
272271

272+
private lazyLoadFirstSlides(): Promise<void> {
273+
return new Promise<void>(async (resolve) => {
274+
const lazyLoadContentFirstSlide = this.lazyLoadContent(0);
275+
const lazyLoadContentSecondSlide = this.lazyLoadContent(1);
276+
277+
await Promise.all([lazyLoadContentFirstSlide, lazyLoadContentSecondSlide]);
278+
279+
resolve();
280+
});
281+
}
282+
273283
// The last child might be a background and note a slides
274284
private countDefinedSlides(definedSlides: HTMLCollection): Promise<number> {
275285
return new Promise<number>((resolve) => {

0 commit comments

Comments
 (0)