From: STJrInuyasha Date: Thu, 6 Jul 2017 19:30:37 +0000 (-0700) Subject: Parse links in status content on update as well as mount (#4042) X-Git-Url: https://git.xn--scling-oua.cat.family/?a=commitdiff_plain;h=6bf6d35637abc691cf85b1c96a54c74af8b8bc2e;p=mastodon.git Parse links in status content on update as well as mount (#4042) * Update links in status content on update as well as mount Fixes occasional bugs with mentions and hashtags not being set to open in a new column like they should, and instead opening in a new page * use classList instead of raw className --- diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js index 19bde01bd..78656571d 100644 --- a/app/javascript/mastodon/components/status_content.js +++ b/app/javascript/mastodon/components/status_content.js @@ -25,12 +25,17 @@ export default class StatusContent extends React.PureComponent { hidden: true, }; - componentDidMount () { + _updateStatusLinks () { const node = this.node; const links = node.querySelectorAll('a'); for (var i = 0; i < links.length; ++i) { - let link = links[i]; + let link = links[i]; + if (link.classList.contains('status-link')) { + continue; + } + link.classList.add('status-link'); + let mention = this.props.status.get('mentions').find(item => link.href === item.get('url')); if (mention) { @@ -46,10 +51,15 @@ export default class StatusContent extends React.PureComponent { } } + componentDidMount () { + this._updateStatusLinks(); + } + componentDidUpdate () { if (this.props.onHeightUpdate) { this.props.onHeightUpdate(); } + this._updateStatusLinks(); } onMentionClick = (mention, e) => {