diff options
author | Chocobozzz <me@florianbigard.com> | 2022-05-02 13:46:09 +0200 |
---|---|---|
committer | Chocobozzz <me@florianbigard.com> | 2022-05-02 13:46:09 +0200 |
commit | 4428ad543e0c717eb7edb27003b9d9a52c616d5d (patch) | |
tree | 950f225b265b9a523509afc5e9961fb5c07523e1 | |
parent | 252e16e158d7a1e192126802d0ec32208f8f80be (diff) | |
download | PeerTube-4428ad543e0c717eb7edb27003b9d9a52c616d5d.tar.gz PeerTube-4428ad543e0c717eb7edb27003b9d9a52c616d5d.tar.zst PeerTube-4428ad543e0c717eb7edb27003b9d9a52c616d5d.zip |
Fix avatar responsive
7 files changed, 31 insertions, 13 deletions
diff --git a/client/src/app/+accounts/accounts.component.html b/client/src/app/+accounts/accounts.component.html index 1544ad034..8362e6b7e 100644 --- a/client/src/app/+accounts/accounts.component.html +++ b/client/src/app/+accounts/accounts.component.html | |||
@@ -2,7 +2,7 @@ | |||
2 | <div class="account-info"> | 2 | <div class="account-info"> |
3 | 3 | ||
4 | <div class="account-avatar-row"> | 4 | <div class="account-avatar-row"> |
5 | <my-actor-avatar class="main-avatar" [account]="account" size="120"></my-actor-avatar> | 5 | <my-actor-avatar class="main-avatar" [account]="account"></my-actor-avatar> |
6 | 6 | ||
7 | <div> | 7 | <div> |
8 | <div class="section-label" i18n>ACCOUNT</div> | 8 | <div class="section-label" i18n>ACCOUNT</div> |
diff --git a/client/src/app/+video-channels/video-channels.component.html b/client/src/app/+video-channels/video-channels.component.html index 09f81d2ce..212e2f867 100644 --- a/client/src/app/+video-channels/video-channels.component.html +++ b/client/src/app/+video-channels/video-channels.component.html | |||
@@ -23,7 +23,7 @@ | |||
23 | <div class="section-label" i18n>OWNER ACCOUNT</div> | 23 | <div class="section-label" i18n>OWNER ACCOUNT</div> |
24 | 24 | ||
25 | <div class="avatar-row"> | 25 | <div class="avatar-row"> |
26 | <my-actor-avatar class="account-avatar" [account]="ownerAccount" [internalHref]="getAccountUrl()" size="48"></my-actor-avatar> | 26 | <my-actor-avatar class="account-avatar" [account]="ownerAccount" [internalHref]="getAccountUrl()"></my-actor-avatar> |
27 | 27 | ||
28 | <div class="actor-info"> | 28 | <div class="actor-info"> |
29 | <h4> | 29 | <h4> |
@@ -51,7 +51,7 @@ | |||
51 | </ng-template> | 51 | </ng-template> |
52 | 52 | ||
53 | <div class="channel-avatar-row"> | 53 | <div class="channel-avatar-row"> |
54 | <my-actor-avatar class="main-avatar" [channel]="videoChannel" size="120"></my-actor-avatar> | 54 | <my-actor-avatar class="main-avatar" [channel]="videoChannel"></my-actor-avatar> |
55 | 55 | ||
56 | <div> | 56 | <div> |
57 | <div class="section-label" i18n>VIDEO CHANNEL</div> | 57 | <div class="section-label" i18n>VIDEO CHANNEL</div> |
diff --git a/client/src/app/+video-channels/video-channels.component.scss b/client/src/app/+video-channels/video-channels.component.scss index 004ad7998..c00dacae5 100644 --- a/client/src/app/+video-channels/video-channels.component.scss +++ b/client/src/app/+video-channels/video-channels.component.scss | |||
@@ -124,6 +124,10 @@ | |||
124 | font-size: var(--myGreyOwnerFontSize); | 124 | font-size: var(--myGreyOwnerFontSize); |
125 | color: pvar(--greyForegroundColor); | 125 | color: pvar(--greyForegroundColor); |
126 | } | 126 | } |
127 | |||
128 | .account-avatar { | ||
129 | @include actor-avatar-size(48px); | ||
130 | } | ||
127 | } | 131 | } |
128 | 132 | ||
129 | .owner-description { | 133 | .owner-description { |
diff --git a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts index b2e1ef46e..600984aa2 100644 --- a/client/src/app/shared/shared-actor-image/actor-avatar.component.ts +++ b/client/src/app/shared/shared-actor-image/actor-avatar.component.ts | |||
@@ -23,7 +23,7 @@ export class ActorAvatarComponent { | |||
23 | 23 | ||
24 | @Input() previewImage: string | 24 | @Input() previewImage: string |
25 | 25 | ||
26 | @Input() size: ActorAvatarSize = '32' | 26 | @Input() size: ActorAvatarSize |
27 | 27 | ||
28 | // Use an external link | 28 | // Use an external link |
29 | @Input() href: string | 29 | @Input() href: string |
@@ -50,13 +50,13 @@ export class ActorAvatarComponent { | |||
50 | } | 50 | } |
51 | 51 | ||
52 | get defaultAvatarUrl () { | 52 | get defaultAvatarUrl () { |
53 | if (this.account) return Account.GET_DEFAULT_AVATAR_URL(+this.size) | 53 | if (this.account) return Account.GET_DEFAULT_AVATAR_URL(this.getSizeNumber()) |
54 | if (this.channel) return VideoChannel.GET_DEFAULT_AVATAR_URL(+this.size) | 54 | if (this.channel) return VideoChannel.GET_DEFAULT_AVATAR_URL(this.getSizeNumber()) |
55 | } | 55 | } |
56 | 56 | ||
57 | get avatarUrl () { | 57 | get avatarUrl () { |
58 | if (this.account) return Account.GET_ACTOR_AVATAR_URL(this.account, +this.size) | 58 | if (this.account) return Account.GET_ACTOR_AVATAR_URL(this.account, this.getSizeNumber()) |
59 | if (this.channel) return VideoChannel.GET_ACTOR_AVATAR_URL(this.channel, +this.size) | 59 | if (this.channel) return VideoChannel.GET_ACTOR_AVATAR_URL(this.channel, this.getSizeNumber()) |
60 | 60 | ||
61 | return '' | 61 | return '' |
62 | } | 62 | } |
@@ -88,6 +88,12 @@ export class ActorAvatarComponent { | |||
88 | return !!this.account || !!this.channel | 88 | return !!this.account || !!this.channel |
89 | } | 89 | } |
90 | 90 | ||
91 | private getSizeNumber () { | ||
92 | if (this.size) return +this.size | ||
93 | |||
94 | return undefined | ||
95 | } | ||
96 | |||
91 | private getColorTheme () { | 97 | private getColorTheme () { |
92 | const initialLowercase = this.initial.toLowerCase() | 98 | const initialLowercase = this.initial.toLowerCase() |
93 | 99 | ||
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 a26a9c11c..e34f6ef64 100644 --- a/client/src/app/shared/shared-main/account/account.model.ts +++ b/client/src/app/shared/shared-main/account/account.model.ts | |||
@@ -17,12 +17,12 @@ export class Account extends Actor implements ServerAccount { | |||
17 | 17 | ||
18 | userId?: number | 18 | userId?: number |
19 | 19 | ||
20 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size: number) { | 20 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size?: number) { |
21 | return Actor.GET_ACTOR_AVATAR_URL(actor, size) | 21 | return Actor.GET_ACTOR_AVATAR_URL(actor, size) |
22 | } | 22 | } |
23 | 23 | ||
24 | static GET_DEFAULT_AVATAR_URL (size: number) { | 24 | static GET_DEFAULT_AVATAR_URL (size?: number) { |
25 | if (size <= 48) { | 25 | if (size && size <= 48) { |
26 | return `${window.location.origin}/client/assets/images/default-avatar-account-48x48.png` | 26 | return `${window.location.origin}/client/assets/images/default-avatar-account-48x48.png` |
27 | } | 27 | } |
28 | 28 | ||
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 977fdb7e5..8427c9902 100644 --- a/client/src/app/shared/shared-main/account/actor.model.ts +++ b/client/src/app/shared/shared-main/account/actor.model.ts | |||
@@ -20,8 +20,12 @@ export abstract class Actor implements ServerActor { | |||
20 | 20 | ||
21 | isLocal: boolean | 21 | isLocal: boolean |
22 | 22 | ||
23 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size: number) { | 23 | static GET_ACTOR_AVATAR_URL (actor: { avatars: { width: number, url?: string, path: string }[] }, size?: number) { |
24 | const avatar = actor.avatars.sort((a, b) => a.width - b.width).find(a => a.width >= size) | 24 | const avatars = actor.avatars.sort((a, b) => a.width - b.width) |
25 | |||
26 | const avatar = size | ||
27 | ? avatars.find(a => a.width >= size) | ||
28 | : avatars[0] | ||
25 | 29 | ||
26 | if (!avatar) return '' | 30 | if (!avatar) return '' |
27 | if (avatar.url) return avatar.url | 31 | if (avatar.url) return avatar.url |
diff --git a/client/src/sass/include/_account-channel-page.scss b/client/src/sass/include/_account-channel-page.scss index 06384b98d..f05b8169e 100644 --- a/client/src/sass/include/_account-channel-page.scss +++ b/client/src/sass/include/_account-channel-page.scss | |||
@@ -70,6 +70,10 @@ | |||
70 | color: pvar(--mainColor); | 70 | color: pvar(--mainColor); |
71 | } | 71 | } |
72 | 72 | ||
73 | .main-avatar { | ||
74 | @include actor-avatar-size(120px); | ||
75 | } | ||
76 | |||
73 | @media screen and (max-width: $mobile-view) { | 77 | @media screen and (max-width: $mobile-view) { |
74 | margin-bottom: 15px; | 78 | margin-bottom: 15px; |
75 | 79 | ||