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

Commit 0b11c24

Browse files
fix: delete slide and DOM JSX update (#1300)
1 parent 5c89e2f commit 0b11c24

File tree

10 files changed

+30
-22
lines changed

10 files changed

+30
-22
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
### Web Components
1010

11-
- core: v8.3.0 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/webcomponents/core/CHANGELOG.md))
11+
- core: v8.4.0 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/webcomponents/core/CHANGELOG.md))
1212
- highlight-code: v3.3.1 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/webcomponents/highlight-code/CHANGELOG.md))
1313

1414
### Others

studio/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

studio/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"dependencies": {
2323
"@deckdeckgo/charts": "^2.1.0",
2424
"@deckdeckgo/color": "^4.1.0",
25-
"@deckdeckgo/core": "^8.3.0",
25+
"@deckdeckgo/core": "^8.4.0",
2626
"@deckdeckgo/deck-utils": "^4.1.0",
2727
"@deckdeckgo/demo": "^2.1.0",
2828
"@deckdeckgo/drag-resize-rotate": "^2.2.0",

studio/src/app/handlers/editor/events/deck/deck-events.handler.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -544,8 +544,6 @@ export class DeckEventsHandler {
544544
}
545545
}
546546

547-
await this.deleteSlideElement();
548-
549547
busyStore.state.deckBusy = false;
550548

551549
resolve();
@@ -557,11 +555,6 @@ export class DeckEventsHandler {
557555
});
558556
}
559557

560-
private async deleteSlideElement() {
561-
const deck: HTMLDeckgoDeckElement = this.mainRef.querySelector('deckgo-deck');
562-
await deck?.deleteActiveSlide();
563-
}
564-
565558
private async getSlideAttributes(slide: HTMLElement, cleanFields: boolean): Promise<SlideAttributes> {
566559
if (SlideUtils.slideScope(slide) !== SlideScope.DEFAULT) {
567560
return this.getSlideUserAttributes(slide);

studio/src/app/pages/editor/app-editor/app-editor.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ import {ChartEventsHandler} from '../../../handlers/core/events/chart/chart-even
3030
import {SlideHelper} from '../../../helpers/editor/slide.helper';
3131

3232
import {SlotType} from '../../../types/editor/slot-type';
33+
3334
import {signIn as navigateSignIn} from '../../../utils/core/signin.utils';
35+
import {SlideUtils} from '../../../utils/editor/slide.utils';
3436

3537
import {AuthService} from '../../../services/auth/auth.service';
3638
import {AnonymousService} from '../../../services/editor/anonymous/anonymous.service';
@@ -380,6 +382,16 @@ export class AppEditor {
380382
await this.replaceSlide($event.detail);
381383
}
382384

385+
@Listen('slideDelete', {target: 'document'})
386+
async deleteSlide({detail: deletedSlide}: CustomEvent<HTMLElement>) {
387+
const slideIndex: number = SlideUtils.slideIndex(deletedSlide);
388+
389+
this.slides = [...this.slides.filter((_slide: JSX.IntrinsicElements, index: number) => slideIndex !== index)];
390+
391+
// Update deck length and slide to an active slide
392+
await this.deckRef.deleteActiveSlide(false);
393+
}
394+
383395
@Listen('addSlide', {target: 'document'})
384396
async addSlide($event: CustomEvent<JSX.IntrinsicElements>) {
385397
if (!$event) {

webcomponents/core/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# 8.4.0 (2021-08-19)
2+
3+
### Features
4+
5+
- `deleteActiveSlide` make removal of DOM child optional
6+
17
# 8.3.0 (2021-08-19)
28

39
### Features

webcomponents/core/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

webcomponents/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@deckdeckgo/core",
3-
"version": "8.3.0",
3+
"version": "8.4.0",
44
"description": "Add a presentation to your web application using HTML and Web Components",
55
"main": "dist/index.cjs.js",
66
"module": "dist/index.js",

webcomponents/core/src/components.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export namespace Components {
1313
"autoSlideInterval": number;
1414
"blockSlide": (block: boolean) => Promise<void>;
1515
"cloneBackground": boolean;
16-
"deleteActiveSlide": () => Promise<void>;
16+
"deleteActiveSlide": (removeChild?: boolean) => Promise<void>;
1717
"direction": 'horizontal' | 'vertical' | 'papyrus';
1818
"directionMobile": 'horizontal' | 'vertical' | 'papyrus';
1919
"doPrint": () => Promise<void>;

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

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -957,19 +957,16 @@ export class DeckdeckgoDeck {
957957
}
958958

959959
@Method()
960-
async deleteActiveSlide() {
960+
async deleteActiveSlide(removeChild: boolean = true) {
961961
if (this.activeIndex > this.length || this.activeIndex < 0) {
962962
return;
963963
}
964964

965-
const slide: HTMLElement = this.el.querySelector('.deckgo-slide-container:nth-child(' + (this.activeIndex + 1) + ')');
966-
967-
if (!slide) {
968-
return;
965+
if (removeChild) {
966+
const slide: HTMLElement | null = this.el.querySelector('.deckgo-slide-container:nth-child(' + (this.activeIndex + 1) + ')');
967+
slide?.parentElement.removeChild(slide);
969968
}
970969

971-
slide.parentElement.removeChild(slide);
972-
973970
this.activeIndex = this.activeIndex > 0 ? this.activeIndex - 1 : 0;
974971
this.length = this.length > 0 ? this.length - 1 : 0;
975972

0 commit comments

Comments
 (0)