From 6bf6d35637abc691cf85b1c96a54c74af8b8bc2e Mon Sep 17 00:00:00 2001 From: STJrInuyasha Date: Thu, 6 Jul 2017 12:30:37 -0700 Subject: [PATCH] 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 --- .../mastodon/components/status_content.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.js index 19bde01b..78656571 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) => {