]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-main/account/account.model.ts
Add new default different avatar for channel and account
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-main / account / account.model.ts
index 6df2e9d10f97d92c36071533365fcbfdb5f8e81f..b3dc6cfe5517fa0cd5440aad7ac720d8ffeae5a7 100644 (file)
@@ -1,4 +1,4 @@
-import { Account as ServerAccount } from '@shared/models/actors/account.model'
+import { Account as ServerAccount, Avatar } from '@shared/models'
 import { Actor } from './actor.model'
 
 export class Account extends Actor implements ServerAccount {
@@ -13,9 +13,19 @@ export class Account extends Actor implements ServerAccount {
 
   userId?: number
 
+  static GET_ACTOR_AVATAR_URL (actor: object) {
+    return Actor.GET_ACTOR_AVATAR_URL(actor) || this.GET_DEFAULT_AVATAR_URL()
+  }
+
+  static GET_DEFAULT_AVATAR_URL () {
+    return `${window.location.origin}/client/assets/images/default-avatar-account.png`
+  }
+
   constructor (hash: ServerAccount) {
     super(hash)
 
+    this.updateComputedAttributes()
+
     this.displayName = hash.displayName
     this.description = hash.description
     this.userId = hash.userId
@@ -27,4 +37,14 @@ export class Account extends Actor implements ServerAccount {
     this.mutedServerByUser = false
     this.mutedServerByInstance = false
   }
+
+  updateAvatar (newAvatar: Avatar) {
+    this.avatar = newAvatar
+
+    this.updateComputedAttributes()
+  }
+
+  private updateComputedAttributes () {
+    this.avatarUrl = Account.GET_ACTOR_AVATAR_URL(this)
+  }
 }