diff options
author | ThibG <thib@sitedethib.com> | 2019-09-01 20:04:35 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-09-05 13:52:07 +0200 |
commit | 2f952f6d0412285beb7f39a831b22bef6c3e9aeb (patch) | |
tree | ebfe311e7cdfd8e2314865077d1d72cf65a7c3a5 /app/javascript/flavours/glitch/features | |
parent | 23c513846a3f829c81d98de1f6d274fc261aea3e (diff) |
[Glitch] Fix custom emoji animation on hover in WebUI directory bios
Port 34eac5a1ecab250760bec1f703ddf828670210fa to glitch-soc Signed-off-by: Thibaut Girka <thib@sitedethib.com>
Diffstat (limited to 'app/javascript/flavours/glitch/features')
-rw-r--r-- | app/javascript/flavours/glitch/features/directory/components/account_card.js | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.js b/app/javascript/flavours/glitch/features/directory/components/account_card.js index 5ba263825..d1c406933 100644 --- a/app/javascript/flavours/glitch/features/directory/components/account_card.js +++ b/app/javascript/flavours/glitch/features/directory/components/account_card.js @@ -82,6 +82,43 @@ class AccountCard extends ImmutablePureComponent { onMute: PropTypes.func.isRequired, }; + _updateEmojis () { + const node = this.node; + + if (!node || autoPlayGif) { + return; + } + + const emojis = node.querySelectorAll('.custom-emoji'); + + for (var i = 0; i < emojis.length; i++) { + let emoji = emojis[i]; + if (emoji.classList.contains('status-emoji')) { + continue; + } + emoji.classList.add('status-emoji'); + + emoji.addEventListener('mouseenter', this.handleEmojiMouseEnter, false); + emoji.addEventListener('mouseleave', this.handleEmojiMouseLeave, false); + } + } + + componentDidMount () { + this._updateEmojis(); + } + + componentDidUpdate () { + this._updateEmojis(); + } + + handleEmojiMouseEnter = ({ target }) => { + target.src = target.getAttribute('data-original'); + } + + handleEmojiMouseLeave = ({ target }) => { + target.src = target.getAttribute('data-static'); + } + handleFollow = () => { this.props.onFollow(this.props.account); } @@ -94,6 +131,10 @@ class AccountCard extends ImmutablePureComponent { this.props.onMute(this.props.account); } + setRef = (c) => { + this.node = c; + } + render () { const { account, intl } = this.props; @@ -133,7 +174,7 @@ class AccountCard extends ImmutablePureComponent { </div> </div> - <div className='directory__card__extra'> + <div className='directory__card__extra' ref={this.setRef}> <div className='account__header__content' dangerouslySetInnerHTML={{ __html: account.get('note_emojified') }} /> </div> |