]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+accounts/account-about/account-about.component.ts
Handle markdown in account/video channel pages
[github/Chocobozzz/PeerTube.git] / client / src / app / +accounts / account-about / account-about.component.ts
index f063df392624651f608f2e9d2400836235ba9d0a..2acf67a59ae85909159fd0fb80e46afafea181c4 100644 (file)
@@ -1,30 +1,45 @@
-import { Component, OnInit } from '@angular/core'
+import { Component, OnInit, OnDestroy } from '@angular/core'
 import { ActivatedRoute } from '@angular/router'
 import { Account } from '@app/shared/account/account.model'
 import { AccountService } from '@app/shared/account/account.service'
+import { I18n } from '@ngx-translate/i18n-polyfill'
+import { Subscription } from 'rxjs'
+import { MarkdownService } from '@app/videos/shared'
 
 @Component({
   selector: 'my-account-about',
   templateUrl: './account-about.component.html',
   styleUrls: [ './account-about.component.scss' ]
 })
-export class AccountAboutComponent implements OnInit {
+export class AccountAboutComponent implements OnInit, OnDestroy {
   account: Account
+  descriptionHTML = ''
+
+  private accountSub: Subscription
 
   constructor (
-    protected route: ActivatedRoute,
-    private accountService: AccountService
+    private route: ActivatedRoute,
+    private i18n: I18n,
+    private accountService: AccountService,
+    private markdownService: MarkdownService
   ) { }
 
   ngOnInit () {
     // Parent get the account for us
-    this.accountService.accountLoaded
-      .subscribe(account => this.account = account)
+    this.accountSub = this.accountService.accountLoaded
+      .subscribe(account => {
+        this.account = account
+        this.descriptionHTML = this.markdownService.textMarkdownToHTML(this.account.description)
+      })
+  }
+
+  ngOnDestroy () {
+    if (this.accountSub) this.accountSub.unsubscribe()
   }
 
   getAccountDescription () {
-    if (this.account.description) return this.account.description
+    if (this.descriptionHTML) return this.descriptionHTML
 
-    return 'No description'
+    return this.i18n('No description')
   }
 }