diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2022-11-10 08:49:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-10 08:49:35 +0100 |
commit | ef582dc4f2fe53b08988faf8d51f567ac32e5b93 (patch) | |
tree | 0f666648e81c69489cda6482bff484551beed34e /app/javascript/mastodon/features/status | |
parent | e37e8deb0ff207d36bb359ce395e2888dacc216d (diff) |
Add option to open original page in dropdowns of remote content in web UI (#20299)
Change profile picture click to open profile picture in modal in web UI
Diffstat (limited to 'app/javascript/mastodon/features/status')
-rw-r--r-- | app/javascript/mastodon/features/status/components/action_bar.js | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index fc82aa9c2..c1242754c 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -39,6 +39,7 @@ const messages = defineMessages({ unblockDomain: { id: 'account.unblock_domain', defaultMessage: 'Unblock domain {domain}' }, unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, + openOriginalPage: { id: 'account.open_original_page', defaultMessage: 'Open original page' }, }); const mapStateToProps = (state, { status }) => ({ @@ -174,22 +175,8 @@ class ActionBar extends React.PureComponent { } handleCopy = () => { - const url = this.props.status.get('url'); - const textarea = document.createElement('textarea'); - - textarea.textContent = url; - textarea.style.position = 'fixed'; - - document.body.appendChild(textarea); - - try { - textarea.select(); - document.execCommand('copy'); - } catch (e) { - - } finally { - document.body.removeChild(textarea); - } + const url = this.props.status.get('url'); + navigator.clipboard.writeText(url); } render () { @@ -201,10 +188,15 @@ class ActionBar extends React.PureComponent { const mutingConversation = status.get('muted'); const account = status.get('account'); const writtenByMe = status.getIn(['account', 'id']) === me; + const isRemote = status.getIn(['account', 'username']) !== status.getIn(['account', 'acct']); let menu = []; if (publicStatus) { + if (isRemote) { + menu.push({ text: intl.formatMessage(messages.openOriginalPage), href: status.get('url') }); + } + menu.push({ text: intl.formatMessage(messages.copy), action: this.handleCopy }); menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed }); menu.push(null); |