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

Commit 7280bc3

Browse files
fix: updating slides length should only take care of slides (not slots like background)
1 parent b4765aa commit 7280bc3

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -386,25 +386,26 @@ export class DeckdeckgoDeck {
386386

387387
@Listen('slideDidLoad')
388388
async slideDidLoad() {
389-
this.updateLength();
389+
await this.updateLength();
390390

391391
await this.emitSlidesDidLoad();
392392
}
393393

394-
private updateLength() {
395-
this.length = this.el.children ? this.el.children.length : 0;
394+
private async updateLength() {
395+
const filteredSlides: Element[] = await this.getDefinedFilteredSlides();
396+
this.length = filteredSlides ? filteredSlides.length : 0;
396397
}
397398

398399
private emitSlidesDidLoad(): Promise<void> {
399400
return new Promise<void>(async (resolve) => {
400-
const definedSlides: HTMLCollection = this.el.children;
401+
const filteredSlides: Element[] = await this.getDefinedFilteredSlides();
402+
401403
const loadedSlides: NodeListOf<HTMLElement> = this.el.querySelectorAll('.deckgo-slide-container');
402404

403-
const filteredSlides: Element[] = await this.filterSlides(definedSlides);
404405
const definedSlidesLength: number = filteredSlides ? filteredSlides.length : 0;
405406

406407
// Are all slides loaded?
407-
if (definedSlides && loadedSlides && loadedSlides.length === definedSlidesLength && definedSlidesLength === this.length) {
408+
if (filteredSlides && loadedSlides && loadedSlides.length === definedSlidesLength && definedSlidesLength === this.length) {
408409
const orderedSlidesTagNames: DeckdeckgoSlideDefinition[] = [];
409410

410411
Array.from(loadedSlides).forEach((slide: HTMLElement) => {
@@ -432,6 +433,15 @@ export class DeckdeckgoDeck {
432433
});
433434
}
434435

436+
private getDefinedFilteredSlides(): Promise<Element[]> {
437+
return new Promise<Element[]>(async (resolve) => {
438+
const definedSlides: HTMLCollection = this.el.children;
439+
const filteredSlides: Element[] = await this.filterSlides(definedSlides);
440+
441+
resolve(filteredSlides);
442+
});
443+
}
444+
435445
private lazyLoadFirstSlides(): Promise<void> {
436446
return new Promise<void>(async (resolve) => {
437447
const lazyLoadContentFirstSlide = this.lazyLoadContent(0);

0 commit comments

Comments
 (0)