Skip to content

Commit 1f3ca82

Browse files
committed
Polish presentation list component
1 parent 1b7a09a commit 1f3ca82

File tree

7 files changed

+95
-40
lines changed

7 files changed

+95
-40
lines changed

apps/codelab/src/app/admin/content/presentation-editor/wrappers/custom-component-editors/codelab-code-demo-console-editor/codelab-code-demo-console-editor.component.html

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,16 @@
2020
</button>
2121
</div>
2222
<div>
23-
<mat-checkbox [(ngModel)]="showPreview" (ngModelChange)="update()">
24-
Show preview
25-
</mat-checkbox>
26-
</div>
27-
<div>
28-
<mat-checkbox [(ngModel)]="allowSwitchingFiles" (ngModelChange)="update()">
29-
Allow switching files [{{ allowSwitchingFiles }}]
30-
</mat-checkbox>
23+
<div>
24+
<mat-checkbox [(ngModel)]="showPreview" (ngModelChange)="update()">
25+
Show preview
26+
</mat-checkbox>
27+
</div>
28+
<div>
29+
<mat-checkbox [(ngModel)]="allowSwitchingFiles" (ngModelChange)="update()">
30+
Allow switching files
31+
</mat-checkbox>
32+
</div>
3133
</div>
3234
</div>
3335
<slides-highlight-button
Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,44 @@
1+
12
.header {
23
display: flex;
34
align-items: center;
5+
justify-content: space-between;
46
}
57

68
.presentation {
79
background: white;
810
border: 1px solid #ddd;
911
margin-top: 20px;
1012
min-height: 200px;
11-
padding: 16px;
13+
padding: 0 16px 16px;
1214
}
1315

1416
.wrapper {
1517
width: 100%;
1618
display: grid;
17-
grid-template-columns: repeat(auto-fill, 250px);
19+
grid-template-columns: repeat(auto-fill, 256px);
1820
grid-gap: 20px;
1921
}
2022

21-
.first-slide {
22-
border: 1px #ddd solid;
23+
.mdc-list-item.mdc-list-item--with-one-line.first-slide {
24+
display: block;
2325
border-radius: 4px;
26+
position: relative;
27+
width: 220px;
28+
height: 160px;
29+
border: 1px #ddd solid;
30+
}
31+
32+
.slides-slide-preview-wrapper {
33+
transform: scale(0.2);
34+
transform-origin: 0;
35+
position: absolute;
36+
left: 0;
37+
top: -320px;
38+
}
39+
40+
slides-slide-preview {
41+
width: 1100px;
42+
height: 800px;
43+
display: block;
2444
}
Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
1-
<div class="wrapper">
1+
<mat-nav-list class="wrapper">
22
<div
33
*ngFor="let presentation of presentations$ | async"
4-
(click)="navigationService.goToPresentation(presentation.id)"
54
class="presentation"
6-
role="button"
7-
tabindex="0"
85
>
96
<div class="header">
107
<div>{{ presentation.name }}</div>
11-
<button mat-icon-button (click)="deletePresentation(presentation.id)">
12-
<mat-icon>cancel</mat-icon>
8+
<mat-menu #menu>
9+
<button mat-menu-item (click)="deletePresentation(presentation.id)">
10+
Delete
11+
</button>
12+
</mat-menu>
13+
<button
14+
mat-icon-button
15+
[matMenuTriggerFor]="menu"
16+
aria-label="Example icon-button with a menu"
17+
>
18+
<mat-icon>more_vert</mat-icon>
1319
</button>
1420
</div>
15-
<div *ngIf="presentation.slides[0] as slide" class="first-slide">
16-
<slides-slide-preview
17-
style="display: block; width: 200px"
18-
mode="preview"
19-
[slide]="slide"
20-
></slides-slide-preview>
21-
</div>
21+
22+
<a *ngIf="presentation.slides[0] as slide" class="first-slide"
23+
mat-list-item
24+
[routerLink]="'./' + presentation.id + '/0'">
25+
<div class="slides-slide-preview-wrapper">
26+
<slides-slide-preview
27+
mode="preview"
28+
[slide]="slide"
29+
></slides-slide-preview>
30+
</div>
31+
</a>
2232
</div>
23-
</div>
33+
</mat-nav-list>
2434

2535
<button mat-button (click)="addPresentation()">Create presentation</button>

apps/codelab/src/app/admin/content/presentation-list/presentation-list.module.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { MatButtonModule } from '@angular/material/button';
55
import { RouterModule } from '@angular/router';
66
import { MatIconModule } from '@angular/material/icon';
77
import { PreviewModule } from '../presentation-editor/preview/preview.module';
8+
import { MatListModule } from "@angular/material/list";
9+
import { MatMenuModule } from "@angular/material/menu";
810

911
@NgModule({
1012
declarations: [PresentationListComponent],
@@ -15,6 +17,8 @@ import { PreviewModule } from '../presentation-editor/preview/preview.module';
1517
MatIconModule,
1618
RouterModule,
1719
PreviewModule,
20+
MatListModule,
21+
MatMenuModule,
1822
],
1923
})
2024
export class PresentationListModule {}

apps/codelab/src/app/v2/presentation-list/presentation-list.component.css

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,28 @@
1414
.wrapper {
1515
width: 100%;
1616
display: grid;
17-
grid-template-columns: repeat(auto-fill, 250px);
17+
grid-template-columns: repeat(auto-fill, 256px);
1818
grid-gap: 20px;
1919
}
2020

2121
.first-slide {
22-
border: 1px #ddd solid;
2322
border-radius: 4px;
23+
position: relative;
24+
width: 220px;
25+
height: 160px;
26+
border: 1px #ddd solid;
27+
}
28+
29+
.slides-slide-preview-wrapper {
30+
transform: scale(0.2);
31+
transform-origin: 0;
32+
position: absolute;
33+
left: 0;
34+
top: -320px;
35+
}
36+
37+
slides-slide-preview {
38+
width: 1100px;
39+
height: 800px;
40+
display: block;
2441
}
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
<div class="wrapper">
2-
<div
1+
<mat-nav-list class="wrapper">
2+
<a
33
*ngFor="let presentation of presentations$ | async"
4-
(click)="navigationService.goToPresentation(presentation.id)"
4+
mat-list-item
5+
[routerLink]="'./' + presentation.id + '/0'"
56
class="presentation"
6-
role="button"
7-
tabindex="0"
87
>
98
<div class="header">
109
<div>{{ presentation.name }}</div>
1110
</div>
1211
<div *ngIf="presentation.slides[0] as slide" class="first-slide">
13-
<slides-slide-preview
14-
style="display: block; width: 200px"
15-
mode="preview"
16-
[slide]="slide"
17-
></slides-slide-preview>
12+
<div class="slides-slide-preview-wrapper">
13+
<slides-slide-preview
14+
mode="preview"
15+
[slide]="slide"
16+
></slides-slide-preview>
17+
</div>
1818
</div>
19-
</div>
20-
</div>
19+
</a>
20+
</mat-nav-list>

apps/codelab/src/app/v2/presentation-list/presentation-list.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { MatButtonModule } from '@angular/material/button';
55
import { RouterModule } from '@angular/router';
66
import { MatIconModule } from '@angular/material/icon';
77
import { PreviewModule } from '../../admin/content/presentation-editor/preview/preview.module';
8+
import { MatListModule } from "@angular/material/list";
89

910
@NgModule({
1011
declarations: [PresentationListComponent],
@@ -15,6 +16,7 @@ import { PreviewModule } from '../../admin/content/presentation-editor/preview/p
1516
MatIconModule,
1617
RouterModule,
1718
PreviewModule,
19+
MatListModule,
1820
],
1921
})
2022
export class PresentationListModule {}

0 commit comments

Comments
 (0)