Skip to content

Commit

Permalink
feat(package): added mat-link-preview-container component to render…
Browse files Browse the repository at this point in the history
… the link preview
  • Loading branch information
AnthonyNahas committed Jul 31, 2018
1 parent 21aadef commit c965247
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<ng-container *ngFor="let link of linkPreviewService.links; trackBy: trackLinks">
<mat-link-preview [link]="link"></mat-link-preview>
</ng-container>
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
@@ -0,0 +1,34 @@
import {async, ComponentFixture, TestBed} from '@angular/core/testing';

import {MatLinkPreviewContainerComponent} from './mat-link-preview-container.component';
import {MatProgressBarModule} from '@angular/material';
import {LinkPreviewService} from '../../..';
import {Link} from 'ngx-linkifyjs';
import {EventEmitter} from '@angular/core';

describe('MatLinkPreviewContainerComponent', () => {
let component: MatLinkPreviewContainerComponent;
let fixture: ComponentFixture<MatLinkPreviewContainerComponent>;
const linkPreviewServicePartial: Partial<LinkPreviewService> = {
onLinkFound: new EventEmitter<Array<Link>>()
};

beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [MatProgressBarModule],
declarations: [MatLinkPreviewContainerComponent],
providers: [{provide: LinkPreviewService, useValue: linkPreviewServicePartial}]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(MatLinkPreviewContainerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import {Component, OnInit} from '@angular/core';
import {LinkPreviewService} from '../../..';
import {Link} from 'ngx-linkifyjs';

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

constructor(public linkPreviewService: LinkPreviewService) {
}

ngOnInit() {
}

trackLinks(index: number, link: Link) {
return link ? link.href : undefined;
}
}
13 changes: 8 additions & 5 deletions src/module/mat-link-preview.module.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import {CommonModule} from '@angular/common';
import {NgModule, ModuleWithProviders} from '@angular/core';

import {LinkPreviewComponent} from './components/link-preview.component';
import {LinkPreviewService} from './service/link-preview.service';
import {NgxLinkifyjsModule, NgxLinkifyjsService} from 'ngx-linkifyjs';
import {HttpClientModule} from '@angular/common/http';
import {MatCardModule} from '@angular/material';
import {MatCardModule, MatProgressBarModule} from '@angular/material';
import {MatLinkPreviewDirective} from './directives/mat-link-preview.directive';
import {LinkPreviewComponent} from './components/mat-link-preview/link-preview.component';
import {MatLinkPreviewContainerComponent} from './components/mat-link-preview-container/mat-link-preview-container.component';

// Export module's public API
export {LinkPreview} from './interfaces/linkpreview.interface'
export {LinkPreviewComponent} from './components/link-preview.component';
export {LinkPreviewComponent} from './components/mat-link-preview/link-preview.component';
export {MatLinkPreviewContainerComponent} from './components/mat-link-preview-container/mat-link-preview-container.component';
export {MatLinkPreviewDirective} from './directives/mat-link-preview.directive';
export {LinkPreviewService} from './service/link-preview.service';

Expand All @@ -20,9 +22,10 @@ export {LinkPreviewService} from './service/link-preview.service';
HttpClientModule,
NgxLinkifyjsModule,
MatCardModule,
MatProgressBarModule
],
exports: [LinkPreviewComponent, MatLinkPreviewDirective],
declarations: [LinkPreviewComponent, MatLinkPreviewDirective]
exports: [LinkPreviewComponent, MatLinkPreviewContainerComponent, MatLinkPreviewDirective],
declarations: [LinkPreviewComponent, MatLinkPreviewContainerComponent, MatLinkPreviewDirective]
})
export class MatLinkPreviewModule {
static forRoot(): ModuleWithProviders {
Expand Down

0 comments on commit c965247

Please sign in to comment.