From 9712518b2fb2585df3bcff95a687c291f04a4199 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 3 Jan 2025 23:00:52 +0100 Subject: [PATCH] Refactor status `handleClick` and `handleHotkeyOpen` handlers (#33435) --- app/javascript/mastodon/components/status.jsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 2be3b94285..fb1fcb87fe 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -167,7 +167,12 @@ class Status extends ImmutablePureComponent { handleClick = e => { e.preventDefault(); - this.handleHotkeyOpen(e); + + if (e?.button === 0 && !(e?.ctrlKey || e?.metaKey)) { + this._openStatus(); + } else if (e?.button === 1 || (e?.button === 0 && (e?.ctrlKey || e?.metaKey))) { + this._openStatus(true); + } }; handleMouseUp = e => { @@ -275,7 +280,11 @@ class Status extends ImmutablePureComponent { this.props.onMention(this._properStatus().get('account')); }; - handleHotkeyOpen = (e) => { + handleHotkeyOpen = () => { + this._openStatus(); + }; + + _openStatus = (newTab = false) => { if (this.props.onClick) { this.props.onClick(); return; @@ -290,7 +299,7 @@ class Status extends ImmutablePureComponent { const path = `/@${status.getIn(['account', 'acct'])}/${status.get('id')}`; - if (e?.button === 1 || (e?.button === 0 && (e?.ctrlKey || e?.metaKey))) { + if (newTab) { window.open(path, '_blank', 'noopener'); } else { history.push(path);