Make avatar and headers respect `auto_play_gif` (#9515)

* Do not animate account header art if user's GIF autoplay setting is off

Fixes #9472

* Honour currently logged-in user's GIF autoplay setting for account avatars

Fixes #9467

* Fix avatar display on some public pages when data is stored on a different host

* Use ternary operator instead of if/else for avatar/header URL
master
ThibG 5 years ago committed by Eugen Rochko
parent 7241db299c
commit 7c48688d85
  1. 2
      app/helpers/home_helper.rb
  2. 2
      app/javascript/mastodon/features/account/components/header.js
  3. 7
      app/views/accounts/_header.html.haml

@ -23,7 +23,7 @@ module HomeHelper
else
link_to(path || TagManager.instance.url_for(account), class: 'account__display-name') do
content_tag(:div, class: 'account__avatar-wrapper') do
content_tag(:div, '', class: 'account__avatar', style: "width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px; background-image: url(#{account.avatar.url})")
content_tag(:div, '', class: 'account__avatar', style: "width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px; background-image: url(#{full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url)})")
end +
content_tag(:span, class: 'display-name') do
content_tag(:bdi) do

@ -158,7 +158,7 @@ class Header extends ImmutablePureComponent {
const badge = account.get('bot') ? (<div className='roles'><div className='account-role bot'><FormattedMessage id='account.badges.bot' defaultMessage='Bot' /></div></div>) : null;
return (
<div className={classNames('account__header', { inactive: !!account.get('moved') })} style={{ backgroundImage: `url(${account.get('header')})` }}>
<div className={classNames('account__header', { inactive: !!account.get('moved') })} style={{ backgroundImage: `url(${autoPlayGif ? account.get('header') : account.get('header_static')})` }}>
<div>
<Avatar account={account} />

@ -1,12 +1,9 @@
.public-account-header{:class => ("inactive" if account.moved?)}
.public-account-header__image
= image_tag account.header.url, class: 'parallax'
= image_tag (current_account&.user&.setting_auto_play_gif ? account.header_original_url : account.header_static_url), class: 'parallax'
.public-account-header__bar
= link_to short_account_url(account), class: 'avatar' do
- if current_account&.user&.setting_auto_play_gif
= image_tag account.avatar_original_url
- else
= image_tag account.avatar_static_url
= image_tag (current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url)
.public-account-header__tabs
.public-account-header__tabs__name
%h1

Loading…
Cancel
Save