socialnetworknews-web

A open-source Paper.li clone
git clone git://archive.git.mtrnord.blog/SocialNetworkNews/socialnetworknews-web.git
Log | Files | Refs | README | LICENSE

commit 7e604751ad5a61f8c0e4826a0f00dd43daa42b2a
parent 8b6be6467f44a16dfdf2b6179562ab2265c1ad01
Author: MTRNord <mtrnord1@gmail.com>
Date:   Fri,  6 Apr 2018 12:59:39 +0200

Fix linkifier

Diffstat:
Msrc/app/tweet-list/tweet-list.component.ts | 16+---------------
Msrc/app/utils/linkifier.ts | 13+++++++++++--
Msrc/app/utils/types/linkifyjs.d.ts | 10+++++++---
3 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/src/app/tweet-list/tweet-list.component.ts b/src/app/tweet-list/tweet-list.component.ts @@ -12,11 +12,7 @@ import 'rxjs/add/observable/throw'; import {ToastrService} from 'ngx-toastr'; import {Meta, Title} from '@angular/platform-browser'; import {Lightbox} from '../utils/lightbox'; -/*import * as linkifyM from 'linkifyjs'; -import hashtagL from 'linkifyjs/plugins/hashtag'; -import mentionL from 'linkifyjs/plugins/mention'; -hashtagL(linkifyM); -mentionL(linkifyM);*/ + @Component({ @@ -116,16 +112,6 @@ export class TweetListComponent implements OnInit { ); } - // TODO use this - /*private linkifyHash(text: string) { - hashtagL.find(text); - }*/ - - // TODO use this - /*private linkifyMention(text: string) { - mentionL.find(text); - }*/ - private sort(arr: (TweetsEntity)[]): (TweetsEntity)[] { const compare = (a, b): number => { if ((a.image_urls && a.image_urls[0]) && !(b.image_urls && b.image_urls[0])) { diff --git a/src/app/utils/linkifier.ts b/src/app/utils/linkifier.ts @@ -1,8 +1,17 @@ -import { Pipe, PipeTransform } from '@angular/core'; -import linkifyStr from 'linkifyjs/string'; +import {Inject, Pipe, PipeTransform} from '@angular/core'; +import * as linkify from 'linkifyjs'; +import * as linkifyStr from 'linkifyjs/string'; +import * as hashtag from 'linkifyjs/plugins/hashtag'; +import * as mention from 'linkifyjs/plugins/mention'; +import {DOCUMENT} from '@angular/common'; @Pipe({name: 'linkify'}) export class LinkifyPipe implements PipeTransform { + constructor( + @Inject(DOCUMENT) dom: Document) { + hashtag(linkify); + mention(linkify); + } transform(str: string): string { return str ? linkifyStr(str, {target: '_blank', attributes: {rel: 'noopener noreferrer'}}) : str; } diff --git a/src/app/utils/types/linkifyjs.d.ts b/src/app/utils/types/linkifyjs.d.ts @@ -53,11 +53,15 @@ declare module 'linkifyjs' { declare module 'linkifyjs/html' { - let data: LinkifyJs.linkify; - - export default data; + export default function linkifyHtml(str: string, opts = {}): Array<string>; } +declare module 'linkifyjs/string' {} + +declare module 'linkifyjs/plugins/hashtag' {} + +declare module 'linkifyjs/plugins/mention' {} + declare var linkify: LinkifyJs.linkify; declare var linkifyHtml: LinkifyJs.linkify;