import { Component, Input, OnInit, OnDestroy } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { Observable, Subscription } from 'rxjs';
import { copyToClipboard } from '../../../utils/utils-functions';
@Component({
selector: 'app-pimp-links-tile',
template: `
Pimp links
`
})
export class PimpLinksTileComponent implements OnInit, OnDestroy {
@Input() linksStream:Observable;
private subs:Subscription;
private links = [];
constructor(private sanitizer:DomSanitizer, private router:Router) { }
private sanitize(url:string) {
return this.sanitizer.bypassSecurityTrustUrl(url);
}
private onClickEdit() {
this.router.navigate(['/configuration']);
}
private onClipboardCopy(evt) {
copyToClipboard(evt);
}
ngOnInit() {
this.subs = this.linksStream.subscribe(links => {
if(JSON.stringify(links) !== JSON.stringify({})) {
this.links = [
{ type:'link', href: links.originURL, title: 'Origin URL', icon: 'link' },
{ type:'link', href: links.proxiedURL, title: 'Pimped URL', icon: 'link' },
{ type:'link', href: links.bsUIURL, title: 'BrowserSync interface', icon: 'developer_board' },
{ type:'copy', href: links.pimpSrcFilesPath, title: 'Pimp source files', icon: 'folder_open', subIcon:'content_paste' }
];
} else {
this.links = [];
}
});
}
ngOnDestroy() {
this.subs.unsubscribe();
}
}