Skip to content

Commit

Permalink
feat(package): added mat-link-preview component
Browse files Browse the repository at this point in the history
  • Loading branch information
AnthonyNahas committed Jul 31, 2018
1 parent c965247 commit 8d6b57c
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 33 deletions.
5 changes: 0 additions & 5 deletions src/module/components/link-preview.component.html

This file was deleted.

13 changes: 0 additions & 13 deletions src/module/components/link-preview.component.scss

This file was deleted.

14 changes: 0 additions & 14 deletions src/module/components/link-preview.component.ts

This file was deleted.

12 changes: 12 additions & 0 deletions src/module/components/mat-link-preview/link-preview.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<div *ngIf="this.linkPreview; then render else loading"></div>

<ng-template #render>
<mat-card>
<img mat-card-image [src]="linkPreview.image">
<mat-card-title>{{linkPreview.title}}</mat-card-title>
<mat-card-subtitle>{{linkPreview.description}}</mat-card-subtitle>
</mat-card>
</ng-template>
<ng-template #loading>
<mat-progress-bar *ngIf="false" mode="indeterminate"></mat-progress-bar>
</ng-template>
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:host {
display: block;
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ describe('LinkPreviewComponent', function () {
beforeEach(() => {
fixture = TestBed.createComponent(LinkPreviewComponent);
comp = fixture.componentInstance;
de = fixture.debugElement.query(By.css('p.description'));
// de = fixture.debugElement.query(By.css('p.description'));
});

it('should create components', () => expect(comp).toBeDefined());
Expand Down
38 changes: 38 additions & 0 deletions src/module/components/mat-link-preview/link-preview.component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import {Component, Input, OnDestroy, OnInit} from '@angular/core';
import {Subscription} from 'rxjs/internal/Subscription';
import {Link} from 'ngx-linkifyjs';
import {LinkPreview} from '../../..';
import {LinkPreviewService} from '../../..';

@Component({
selector: 'mat-link-preview',
templateUrl: './link-preview.component.html',
styleUrls: ['./link-preview.component.scss']
})
export class LinkPreviewComponent implements OnInit, OnDestroy {

@Input() link: Link;
linkPreview: LinkPreview;
loaded: boolean;
private _subscription: Subscription;

constructor(public linkPreviewService: LinkPreviewService) {
}

ngOnInit(): void {
this.loaded = false;
this._subscription = this.linkPreviewService
.fetchLink(this.link.href)
.subscribe(value => {
this.linkPreview = value;
this.loaded = true;
});
}

ngOnDestroy(): void {
if (this._subscription) {
this._subscription.unsubscribe();
}
}

}

0 comments on commit 8d6b57c

Please sign in to comment.