Skip to content

Commit 5072769

Browse files
authored
Merge pull request #3177 from SMassola/issue-3169-b
feat: add file item as template outlet context to file actions
2 parents 28c1ca2 + 41ef59d commit 5072769

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

src/file-uploader/file-uploader.stories.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/* tslint:disable variable-name */
2+
13
import { FormsModule, ReactiveFormsModule } from "@angular/forms";
24
import { Meta, moduleMetadata } from "@storybook/angular";
35
import { ButtonModule } from "../button";

src/file-uploader/file.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ import { FileItem } from "./file-item.interface";
3131
</svg>
3232
<ng-template
3333
*ngIf="isTemplate(actionsTpl); else defaultActions"
34-
[ngTemplateOutlet]="actionsTpl">
34+
[ngTemplateOutlet]="actionsTpl"
35+
[ngTemplateOutletContext]="{ $implicit: fileItem }">
3536
</ng-template>
3637
<ng-template #defaultActions>
3738
<button

src/file-uploader/file.stories.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/* tslint:disable variable-name */
2+
13
import { Meta, moduleMetadata } from "@storybook/angular";
24

35
import { ButtonModule } from "../button";

src/file-uploader/stories/uploader-custom-file.component.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { FileItem } from "../";
55
@Component({
66
selector: "app-file-uploader-with-custom-file",
77
template: `
8+
<p *ngIf="lastViewedFile">Last viewed file: {{ lastViewedFile | json }}</p>
9+
<p *ngIf="lastDownloadedFile">Last downloaded file: {{ lastDownloadedFile | json }}</p>
810
<cds-file-uploader
911
[title]="title"
1012
[description]="description"
@@ -32,25 +34,30 @@ import { FileItem } from "../";
3234
<a href="#" cdsLink>{{ fileItem.file.name }}</a>
3335
</ng-template>
3436
35-
<ng-template #actionsTpl>
37+
<ng-template #actionsTpl let-fileItem>
3638
<button
3739
ibmButton="ghost"
3840
iconOnly="true"
3941
aria-label="View"
40-
[size]="fileItemSize">
42+
[size]="fileItemSize"
43+
(click)="onViewClick(fileItem)">
4144
<svg ibmIcon="view" size="16"></svg>
4245
</button>
4346
<button
4447
ibmButton="ghost"
4548
iconOnly="true"
4649
aria-label="Download"
47-
[size]="fileItemSize">
50+
[size]="fileItemSize"
51+
(click)="onDownloadClick(fileItem)">
4852
<svg ibmIcon="download" size="16"></svg>
4953
</button>
5054
</ng-template>
5155
`
5256
})
5357
export class FileUploaderWithCustomFileStory {
58+
lastViewedFile: FileItem | null = null;
59+
lastDownloadedFile: FileItem | null = null;
60+
5461
@Input() files = new Set<FileItem>();
5562
@Input() title;
5663
@Input() description;
@@ -65,6 +72,14 @@ export class FileUploaderWithCustomFileStory {
6572

6673
protected maxSize = 500000;
6774

75+
onViewClick(file: FileItem) {
76+
this.lastViewedFile = file;
77+
}
78+
79+
onDownloadClick(file: FileItem) {
80+
this.lastDownloadedFile = file;
81+
}
82+
6883
onUpload() {
6984
this.files.forEach((fileItem) => {
7085
if (!fileItem.uploaded) {

0 commit comments

Comments
 (0)