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

Commit cd56d20

Browse files
feat: add an option to not trigger slideStart on slideNext and slidePrev
1 parent bdf8ccb commit cd56d20

File tree

4 files changed

+29
-13
lines changed

4 files changed

+29
-13
lines changed

doc/features/navigation.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,24 @@ const deck = document.getElementsByTagName('deckgo-deck');
3232
await deck.slideNext();
3333
```
3434

35+
*Optional parameter:* Optionally your could provide a boolean parameter to this method in case you would not like the event `slideNextStart` and `slidePrevStart` to be fired.
36+
37+
```
38+
await deck.slideNext(false);
39+
```
40+
3541
### Go to previous slide
3642

3743
```
3844
await deck.slidePrev();
3945
```
4046

47+
*Optional parameter:* Optionally your could provide a boolean parameter to this method in case you would not like the event `slideNextStart` and `slidePrevStart` to be fired.
48+
49+
```
50+
await deck.slidePrev(false);
51+
```
52+
4153
### Go to a specific slide
4254

4355
```

src/components.d.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ export namespace Components {
2121
'keyboard': boolean;
2222
'pager': boolean;
2323
'pagerPercentage': boolean;
24-
'slideNext': () => Promise<void>;
25-
'slidePrev': () => Promise<void>;
24+
'slideNext': (emitEvent?: boolean) => Promise<void>;
25+
'slidePrev': (emitEvent?: boolean) => Promise<void>;
2626
'slideTo': (index: number, speed?: number) => Promise<void>;
2727
'toggleFullScreen': () => Promise<void>;
2828
}

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export class DeckdeckgoDeck {
154154
this.startX = null;
155155
}
156156

157-
private swipeSlide(deltaX: DeltaX): Promise<void> {
157+
private swipeSlide(deltaX: DeltaX, emitEvent: boolean = true): Promise<void> {
158158
return new Promise<void>(async (resolve) => {
159159
if (!deltaX || !window) {
160160
resolve();
@@ -173,11 +173,15 @@ export class DeckdeckgoDeck {
173173
if (deltaX.swipeLeft) {
174174
this.activeIndex++;
175175

176-
this.slideNextStart.emit(this.activeIndex);
176+
if (emitEvent) {
177+
this.slideNextStart.emit(this.activeIndex);
178+
}
177179
} else {
178180
this.activeIndex--;
179181

180-
this.slidePrevStart.emit(this.activeIndex);
182+
if (emitEvent) {
183+
this.slidePrevStart.emit(this.activeIndex);
184+
}
181185
}
182186
}
183187
}
@@ -277,16 +281,16 @@ export class DeckdeckgoDeck {
277281
/* BEGIN: Manual sliding */
278282

279283
@Method()
280-
async slideNext() {
281-
await this.slideNextPrev(true);
284+
async slideNext(emitEvent?: boolean) {
285+
await this.slideNextPrev(true, emitEvent);
282286
}
283287

284288
@Method()
285-
async slidePrev() {
286-
await this.slideNextPrev(false);
289+
async slidePrev(emitEvent?: boolean) {
290+
await this.slideNextPrev(false, emitEvent);
287291
}
288292

289-
private async slideNextPrev(swipeLeft: boolean) {
293+
private async slideNextPrev(swipeLeft: boolean, emitEvent?: boolean) {
290294
const slider: HTMLElement = this.el.shadowRoot.querySelector('div.deckgo-deck');
291295

292296
if (!slider || !window) {
@@ -303,7 +307,7 @@ export class DeckdeckgoDeck {
303307
deltaX: window.innerWidth
304308
};
305309

306-
await this.swipeSlide(deltaX);
310+
await this.swipeSlide(deltaX, emitEvent);
307311
}
308312
}
309313

src/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,14 +127,14 @@ <h1 slot="title">Manual code</h1>
127127
function slideNext() {
128128
const elem = document.getElementsByTagName('deckgo-deck');
129129
if (elem && elem.length > 0) {
130-
elem[0].slideNext();
130+
elem[0].slideNext(false);
131131
}
132132
}
133133

134134
function slidePrev() {
135135
const elem = document.getElementsByTagName('deckgo-deck');
136136
if (elem && elem.length > 0) {
137-
elem[0].slidePrev();
137+
elem[0].slidePrev(false);
138138
}
139139
}
140140

0 commit comments

Comments
 (0)