Skip to content

Commit 8d6b57c

Browse files
committed
feat(package): added mat-link-preview component
1 parent c965247 commit 8d6b57c

File tree

7 files changed

+54
-33
lines changed

7 files changed

+54
-33
lines changed

src/module/components/link-preview.component.html

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/module/components/link-preview.component.scss

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/module/components/link-preview.component.ts

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<div *ngIf="this.linkPreview; then render else loading"></div>
2+
3+
<ng-template #render>
4+
<mat-card>
5+
<img mat-card-image [src]="linkPreview.image">
6+
<mat-card-title>{{linkPreview.title}}</mat-card-title>
7+
<mat-card-subtitle>{{linkPreview.description}}</mat-card-subtitle>
8+
</mat-card>
9+
</ng-template>
10+
<ng-template #loading>
11+
<mat-progress-bar *ngIf="false" mode="indeterminate"></mat-progress-bar>
12+
</ng-template>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
:host {
2+
display: block;
3+
}

src/module/components/link-preview.component.spec.ts renamed to src/module/components/mat-link-preview/link-preview.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('LinkPreviewComponent', function () {
2222
beforeEach(() => {
2323
fixture = TestBed.createComponent(LinkPreviewComponent);
2424
comp = fixture.componentInstance;
25-
de = fixture.debugElement.query(By.css('p.description'));
25+
// de = fixture.debugElement.query(By.css('p.description'));
2626
});
2727

2828
it('should create components', () => expect(comp).toBeDefined());
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import {Component, Input, OnDestroy, OnInit} from '@angular/core';
2+
import {Subscription} from 'rxjs/internal/Subscription';
3+
import {Link} from 'ngx-linkifyjs';
4+
import {LinkPreview} from '../../..';
5+
import {LinkPreviewService} from '../../..';
6+
7+
@Component({
8+
selector: 'mat-link-preview',
9+
templateUrl: './link-preview.component.html',
10+
styleUrls: ['./link-preview.component.scss']
11+
})
12+
export class LinkPreviewComponent implements OnInit, OnDestroy {
13+
14+
@Input() link: Link;
15+
linkPreview: LinkPreview;
16+
loaded: boolean;
17+
private _subscription: Subscription;
18+
19+
constructor(public linkPreviewService: LinkPreviewService) {
20+
}
21+
22+
ngOnInit(): void {
23+
this.loaded = false;
24+
this._subscription = this.linkPreviewService
25+
.fetchLink(this.link.href)
26+
.subscribe(value => {
27+
this.linkPreview = value;
28+
this.loaded = true;
29+
});
30+
}
31+
32+
ngOnDestroy(): void {
33+
if (this._subscription) {
34+
this._subscription.unsubscribe();
35+
}
36+
}
37+
38+
}

0 commit comments

Comments
 (0)