]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-main/account/account.model.ts
Add video filters to common video pages
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-main / account / account.model.ts
index 6df2e9d10f97d92c36071533365fcbfdb5f8e81f..92606e7fa9810c382253538e187767dee8731f6e 100644 (file)
@@ -1,11 +1,15 @@
-import { Account as ServerAccount } from '@shared/models/actors/account.model'
+import { Account as ServerAccount, ActorImage } from '@shared/models'
 import { Actor } from './actor.model'
 
 export class Account extends Actor implements ServerAccount {
   displayName: string
   description: string
+
+  updatedAt: Date | string
+
   nameWithHost: string
   nameWithHostForced: string
+
   mutedByUser: boolean
   mutedByInstance: boolean
   mutedServerByUser: boolean
@@ -13,6 +17,14 @@ export class Account extends Actor implements ServerAccount {
 
   userId?: number
 
+  static GET_ACTOR_AVATAR_URL (actor: { avatar?: { url?: string, path: string } }) {
+    return Actor.GET_ACTOR_AVATAR_URL(actor)
+  }
+
+  static GET_DEFAULT_AVATAR_URL () {
+    return `${window.location.origin}/client/assets/images/default-avatar-account.png`
+  }
+
   constructor (hash: ServerAccount) {
     super(hash)
 
@@ -22,9 +34,19 @@ export class Account extends Actor implements ServerAccount {
     this.nameWithHost = Actor.CREATE_BY_STRING(this.name, this.host)
     this.nameWithHostForced = Actor.CREATE_BY_STRING(this.name, this.host, true)
 
+    if (hash.updatedAt) this.updatedAt = new Date(hash.updatedAt.toString())
+
     this.mutedByUser = false
     this.mutedByInstance = false
     this.mutedServerByUser = false
     this.mutedServerByInstance = false
   }
+
+  updateAvatar (newAvatar: ActorImage) {
+    this.avatar = newAvatar
+  }
+
+  resetAvatar () {
+    this.avatar = null
+  }
 }