Skip to content

Commit 10cc2f5

Browse files
Merge branch 'feature/side-panel-selection' into wysiwyg
2 parents 5a6eaa5 + 4129f49 commit 10cc2f5

File tree

7 files changed

+30
-23
lines changed

7 files changed

+30
-23
lines changed

apps/codelab/src/app/admin/content/presentation-editor/content.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<div class="wrapper" *ngIf="presentation$ | async as presentation">
1010
<slides-side-panel
1111
[presentationId]="presentation.id"
12-
[selectedSlide]="selectedSlide$ | async"
12+
[currentSlideIndex]="currentSlideIndex$ | async"
1313
[slides]="presentation.slides"
1414
></slides-side-panel>
1515
<div class="editor" *ngIf="currentSlide$ | async as slide; else noSlide">

apps/codelab/src/app/admin/content/presentation-editor/content.component.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import { combineLatest } from 'rxjs';
66
import { ContentPresentation } from './types';
77
import { NavigationService } from './services/navigation.service';
88

9-
declare const require;
10-
119
@Component({
1210
selector: 'slides-content',
1311
templateUrl: './content.component.html',
@@ -25,7 +23,7 @@ export class ContentComponent {
2523
})
2624
);
2725

28-
selectedSlide$ = this.contentService.selectedSlide$;
26+
currentSlideIndex$ = this.contentService.currentSlideIndex$;
2927

3028
currentSlide$ = combineLatest([
3129
this.navigationService.selectedSlide$,

apps/codelab/src/app/admin/content/presentation-editor/preview/preview.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div class="wrapper" *ngIf="contentService.state$ | async as presentations">
22
<div
33
class="editor"
4-
*ngIf="presentations[contentService.selectedSlide$ | async] as slide"
4+
*ngIf="presentations[contentService.currentSlideIndex$ | async] as slide"
55
>
66
<slides-slide-preview [slide]="slide"></slides-slide-preview>
77
</div>

apps/codelab/src/app/admin/content/presentation-editor/services/content.service.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ const DOC_KEY = 'presentations';
2020

2121
@Injectable()
2222
export class ContentService implements OnDestroy {
23-
private readonly selectedSlideSubject = new BehaviorSubject(0);
23+
private readonly currentSlideSubject = new BehaviorSubject(0);
2424

25-
public readonly selectedSlide$ = this.selectedSlideSubject;
25+
public readonly currentSlideIndex$ = this.currentSlideSubject;
2626

2727
readonly presentations = this.firestore.collection('presentations');
2828
private readonly presentations$ = this.presentations
@@ -94,7 +94,7 @@ export class ContentService implements OnDestroy {
9494
}
9595

9696
addSlide(presentationId: string) {
97-
const index = this.selectedSlide$.value;
97+
const index = this.currentSlideIndex$.value;
9898
const action = {
9999
type: 'addSlide',
100100
payload: {

apps/codelab/src/app/admin/content/presentation-editor/side-panel/side-panel.component.html

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
<div class="slides-wrapper">
22
<button (click)="addSlide()">Add</button>
33

4-
<div cdkDropList (cdkDropListDropped)="reorder.emit($event)">
4+
<div (cdkDropListDropped)="reorder.emit($event)" cdkDropList>
55
<button
6-
class="slide-wrapper"
7-
*ngFor="let slide of slides; let i = index"
8-
[class.selected]="i === selectedSlide"
9-
inert="true"
6+
inert
107
(click)="this.navigationService.goToSlide(presentationId, i)"
8+
*ngFor="let slide of slides; let i = index"
9+
[class.selected]="i === currentSlideIndex"
10+
class="slide-wrapper"
1111
>
12-
<div
13-
cdkDrag
14-
class="slide"
15-
style="pointer-events: none;text-decoration: none; color: inherit"
16-
>
12+
<div cdkDrag class="slide">
1713
<slides-slide-preview
18-
mode="preview"
14+
[class.selected]="i === currentSlideIndex"
1915
[slide]="slide"
20-
[class.selected]="i === selectedSlide"
16+
mode="preview"
2117
></slides-slide-preview>
2218
</div>
2319
</button>

apps/codelab/src/app/admin/content/presentation-editor/side-panel/side-panel.component.scss

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,34 @@
88
overflow: scroll;
99
display: flex;
1010
flex-direction: column;
11+
width: 114px;
1112
height: 100%;
13+
padding: 0 4px;
1214
box-shadow: 1px 0 2px 0 #ddd;
13-
width: 114px;
1415
background: #f8f8f8;
1516
}
1617

1718
.slide-wrapper.selected {
1819
background: #dde;
1920
}
21+
2022
.slide-wrapper {
2123
display: flex;
2224
justify-content: space-around;
25+
width: 100%;
26+
min-height: 40px;
2327
padding: 4px 20px;
2428
box-sizing: border-box;
25-
border: 0 solid;
29+
border: 1px solid #ddd;
30+
border-radius: 4px;
2631
background: #f8f8f8;
2732
margin: 0;
2833
}
34+
35+
.slide-wrapper + .slide-wrapper {
36+
margin-top: 4px;
37+
}
38+
2939
.slide {
3040
padding: 0;
3141
background: #fff;
@@ -35,6 +45,9 @@
3545
display: flex;
3646
margin: 0;
3747
text-align: left;
48+
pointer-events: none;
49+
text-decoration: none;
50+
color: inherit;
3851

3952
slides-slide-preview {
4053
zoom: 0.2;

apps/codelab/src/app/admin/content/presentation-editor/side-panel/side-panel.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { NavigationService } from '../services/navigation.service';
1919
export class SidePanelComponent {
2020
@Input() slides;
2121
@Output() reorder = new EventEmitter();
22-
@Input() selectedSlide = 0;
22+
@Input() currentSlideIndex = 0;
2323
@Input() presentationId!: string;
2424

2525
constructor(

0 commit comments

Comments
 (0)