diff options
Diffstat (limited to 'client/src/app/shared/shared-main/account')
-rw-r--r-- | client/src/app/shared/shared-main/account/account.model.ts | 16 | ||||
-rw-r--r-- | client/src/app/shared/shared-main/account/actor.model.ts | 20 |
2 files changed, 21 insertions, 15 deletions
diff --git a/client/src/app/shared/shared-main/account/account.model.ts b/client/src/app/shared/shared-main/account/account.model.ts index 8b78d01a6..a26a9c11c 100644 --- a/client/src/app/shared/shared-main/account/account.model.ts +++ b/client/src/app/shared/shared-main/account/account.model.ts | |||
@@ -17,11 +17,15 @@ export class Account extends Actor implements ServerAccount { | |||
17 | 17 | ||
18 | userId?: number | 18 | userId?: number |
19 | 19 | ||
20 | static GET_ACTOR_AVATAR_URL (actor: { avatar?: { url?: string, path: string } }) { | 20 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size: number) { |
21 | return Actor.GET_ACTOR_AVATAR_URL(actor) | 21 | return Actor.GET_ACTOR_AVATAR_URL(actor, size) |
22 | } | 22 | } |
23 | 23 | ||
24 | static GET_DEFAULT_AVATAR_URL () { | 24 | static GET_DEFAULT_AVATAR_URL (size: number) { |
25 | if (size <= 48) { | ||
26 | return `${window.location.origin}/client/assets/images/default-avatar-account-48x48.png` | ||
27 | } | ||
28 | |||
25 | return `${window.location.origin}/client/assets/images/default-avatar-account.png` | 29 | return `${window.location.origin}/client/assets/images/default-avatar-account.png` |
26 | } | 30 | } |
27 | 31 | ||
@@ -42,12 +46,12 @@ export class Account extends Actor implements ServerAccount { | |||
42 | this.mutedServerByInstance = false | 46 | this.mutedServerByInstance = false |
43 | } | 47 | } |
44 | 48 | ||
45 | updateAvatar (newAvatar: ActorImage) { | 49 | updateAvatar (newAvatars: ActorImage[]) { |
46 | this.avatar = newAvatar | 50 | this.avatars = newAvatars |
47 | } | 51 | } |
48 | 52 | ||
49 | resetAvatar () { | 53 | resetAvatar () { |
50 | this.avatar = null | 54 | this.avatars = [] |
51 | } | 55 | } |
52 | 56 | ||
53 | updateBlockStatus (blockStatus: BlockStatus) { | 57 | updateBlockStatus (blockStatus: BlockStatus) { |
diff --git a/client/src/app/shared/shared-main/account/actor.model.ts b/client/src/app/shared/shared-main/account/actor.model.ts index 082f44fb9..a54f51aa4 100644 --- a/client/src/app/shared/shared-main/account/actor.model.ts +++ b/client/src/app/shared/shared-main/account/actor.model.ts | |||
@@ -13,20 +13,22 @@ export abstract class Actor implements ServerActor { | |||
13 | 13 | ||
14 | createdAt: Date | string | 14 | createdAt: Date | string |
15 | 15 | ||
16 | avatar: ActorImage | 16 | // TODO: remove, deprecated in 4.2 |
17 | avatar: never | ||
18 | |||
19 | avatars: ActorImage[] | ||
17 | 20 | ||
18 | isLocal: boolean | 21 | isLocal: boolean |
19 | 22 | ||
20 | static GET_ACTOR_AVATAR_URL (actor: { avatar?: { url?: string, path: string } }) { | 23 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size: number) { |
21 | if (actor?.avatar?.url) return actor.avatar.url | 24 | const avatar = actor.avatars.sort((a, b) => a.width - b.width).find(a => a.width >= size) |
22 | 25 | ||
23 | if (actor?.avatar) { | 26 | if (!avatar) return '' |
24 | const absoluteAPIUrl = getAbsoluteAPIUrl() | 27 | if (avatar.url) return avatar.url |
25 | 28 | ||
26 | return absoluteAPIUrl + actor.avatar.path | 29 | const absoluteAPIUrl = getAbsoluteAPIUrl() |
27 | } | ||
28 | 30 | ||
29 | return '' | 31 | return absoluteAPIUrl + avatar.path |
30 | } | 32 | } |
31 | 33 | ||
32 | static CREATE_BY_STRING (accountName: string, host: string, forceHostname = false) { | 34 | static CREATE_BY_STRING (accountName: string, host: string, forceHostname = false) { |
@@ -55,7 +57,7 @@ export abstract class Actor implements ServerActor { | |||
55 | 57 | ||
56 | if (hash.createdAt) this.createdAt = new Date(hash.createdAt.toString()) | 58 | if (hash.createdAt) this.createdAt = new Date(hash.createdAt.toString()) |
57 | 59 | ||
58 | this.avatar = hash.avatar | 60 | this.avatars = hash.avatars |
59 | this.isLocal = Actor.IS_LOCAL(this.host) | 61 | this.isLocal = Actor.IS_LOCAL(this.host) |
60 | } | 62 | } |
61 | } | 63 | } |