From f52b69ebbbc67669a468a9512021889fa91c49ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?marcin=20miko=C5=82ajczak?= Date: Sat, 11 Dec 2021 21:51:10 +0100 Subject: [PATCH] Don't show menu items requiring auth when not authenticated for detailed statuses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: marcin mikołajczak --- .../features/status/components/action_bar.js | 214 +++++++++--------- 1 file changed, 108 insertions(+), 106 deletions(-) diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js index 5b8cd3d77..4852eb5b7 100644 --- a/app/soapbox/features/status/components/action_bar.js +++ b/app/soapbox/features/status/components/action_bar.js @@ -337,123 +337,125 @@ class ActionBar extends React.PureComponent { }); } - menu.push(null); + if (me) { + menu.push(null); - if (ownAccount) { - if (publicStatus) { - menu.push({ - text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), - action: this.handlePinClick, - icon: require(mutingConversation ? '@tabler/icons/icons/pinned-off.svg' : '@tabler/icons/icons/pin.svg'), - }); - } else { - if (status.get('visibility') === 'private') { + if (ownAccount) { + if (publicStatus) { menu.push({ - text: intl.formatMessage(status.get('reblogged') ? messages.cancel_reblog_private : messages.reblog_private), - action: this.handleReblogClick, - icon: require('@tabler/icons/icons/repeat.svg'), + text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), + action: this.handlePinClick, + icon: require(mutingConversation ? '@tabler/icons/icons/pinned-off.svg' : '@tabler/icons/icons/pin.svg'), }); + } else { + if (status.get('visibility') === 'private') { + menu.push({ + text: intl.formatMessage(status.get('reblogged') ? messages.cancel_reblog_private : messages.reblog_private), + action: this.handleReblogClick, + icon: require('@tabler/icons/icons/repeat.svg'), + }); + } } - } - menu.push(null); - menu.push({ - text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), - action: this.handleConversationMuteClick, - icon: require(mutingConversation ? '@tabler/icons/icons/bell.svg' : '@tabler/icons/icons/bell-off.svg'), - }); - menu.push(null); - menu.push({ - text: intl.formatMessage(messages.delete), - action: this.handleDeleteClick, - icon: require('@tabler/icons/icons/trash.svg'), - destructive: true, - }); - menu.push({ - text: intl.formatMessage(messages.redraft), - action: this.handleRedraftClick, - icon: require('@tabler/icons/icons/edit.svg'), - destructive: true, - }); - } else { - menu.push({ - text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), - action: this.handleMentionClick, - icon: require('feather-icons/dist/icons/at-sign.svg'), - }); - - if (status.getIn(['account', 'pleroma', 'accepts_chat_messages'], false) === true) { + menu.push(null); menu.push({ - text: intl.formatMessage(messages.chat, { name: status.getIn(['account', 'username']) }), - action: this.handleChatClick, - icon: require('@tabler/icons/icons/messages.svg'), + text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), + action: this.handleConversationMuteClick, + icon: require(mutingConversation ? '@tabler/icons/icons/bell.svg' : '@tabler/icons/icons/bell-off.svg'), }); - } else { + menu.push(null); menu.push({ - text: intl.formatMessage(messages.direct, { name: status.getIn(['account', 'username']) }), - action: this.handleDirectClick, - icon: require('@tabler/icons/icons/mail.svg'), - }); - } - - menu.push(null); - menu.push({ - text: intl.formatMessage(messages.mute, { name: status.getIn(['account', 'username']) }), - action: this.handleMuteClick, - icon: require('@tabler/icons/icons/circle-x.svg'), - }); - menu.push({ - text: intl.formatMessage(messages.block, { name: status.getIn(['account', 'username']) }), - action: this.handleBlockClick, - icon: require('@tabler/icons/icons/ban.svg'), - }); - menu.push({ - text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), - action: this.handleReport, - icon: require('@tabler/icons/icons/flag.svg'), - }); - } - - if (isStaff) { - menu.push(null); - - if (isAdmin) { - menu.push({ - text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), - href: `/pleroma/admin/#/users/${status.getIn(['account', 'id'])}/`, - icon: require('icons/gavel.svg'), - }); - menu.push({ - text: intl.formatMessage(messages.admin_status), - href: `/pleroma/admin/#/statuses/${status.get('id')}/`, - icon: require('@tabler/icons/icons/pencil.svg'), - }); - } - - menu.push({ - text: intl.formatMessage(status.get('sensitive') === false ? messages.markStatusSensitive : messages.markStatusNotSensitive), - action: this.handleToggleStatusSensitivity, - icon: require('@tabler/icons/icons/alert-triangle.svg'), - }); - - if (!ownAccount) { - menu.push({ - text: intl.formatMessage(messages.deactivateUser, { name: status.getIn(['account', 'username']) }), - action: this.handleDeactivateUser, - icon: require('@tabler/icons/icons/user-off.svg'), - }); - menu.push({ - text: intl.formatMessage(messages.deleteUser, { name: status.getIn(['account', 'username']) }), - action: this.handleDeleteUser, - icon: require('@tabler/icons/icons/user-minus.svg'), - destructive: true, - }); - menu.push({ - text: intl.formatMessage(messages.deleteStatus), - action: this.handleDeleteStatus, + text: intl.formatMessage(messages.delete), + action: this.handleDeleteClick, icon: require('@tabler/icons/icons/trash.svg'), destructive: true, }); + menu.push({ + text: intl.formatMessage(messages.redraft), + action: this.handleRedraftClick, + icon: require('@tabler/icons/icons/edit.svg'), + destructive: true, + }); + } else { + menu.push({ + text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), + action: this.handleMentionClick, + icon: require('feather-icons/dist/icons/at-sign.svg'), + }); + + if (status.getIn(['account', 'pleroma', 'accepts_chat_messages'], false) === true) { + menu.push({ + text: intl.formatMessage(messages.chat, { name: status.getIn(['account', 'username']) }), + action: this.handleChatClick, + icon: require('@tabler/icons/icons/messages.svg'), + }); + } else { + menu.push({ + text: intl.formatMessage(messages.direct, { name: status.getIn(['account', 'username']) }), + action: this.handleDirectClick, + icon: require('@tabler/icons/icons/mail.svg'), + }); + } + + menu.push(null); + menu.push({ + text: intl.formatMessage(messages.mute, { name: status.getIn(['account', 'username']) }), + action: this.handleMuteClick, + icon: require('@tabler/icons/icons/circle-x.svg'), + }); + menu.push({ + text: intl.formatMessage(messages.block, { name: status.getIn(['account', 'username']) }), + action: this.handleBlockClick, + icon: require('@tabler/icons/icons/ban.svg'), + }); + menu.push({ + text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), + action: this.handleReport, + icon: require('@tabler/icons/icons/flag.svg'), + }); + } + + if (isStaff) { + menu.push(null); + + if (isAdmin) { + menu.push({ + text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), + href: `/pleroma/admin/#/users/${status.getIn(['account', 'id'])}/`, + icon: require('icons/gavel.svg'), + }); + menu.push({ + text: intl.formatMessage(messages.admin_status), + href: `/pleroma/admin/#/statuses/${status.get('id')}/`, + icon: require('@tabler/icons/icons/pencil.svg'), + }); + } + + menu.push({ + text: intl.formatMessage(status.get('sensitive') === false ? messages.markStatusSensitive : messages.markStatusNotSensitive), + action: this.handleToggleStatusSensitivity, + icon: require('@tabler/icons/icons/alert-triangle.svg'), + }); + + if (!ownAccount) { + menu.push({ + text: intl.formatMessage(messages.deactivateUser, { name: status.getIn(['account', 'username']) }), + action: this.handleDeactivateUser, + icon: require('@tabler/icons/icons/user-off.svg'), + }); + menu.push({ + text: intl.formatMessage(messages.deleteUser, { name: status.getIn(['account', 'username']) }), + action: this.handleDeleteUser, + icon: require('@tabler/icons/icons/user-minus.svg'), + destructive: true, + }); + menu.push({ + text: intl.formatMessage(messages.deleteStatus), + action: this.handleDeleteStatus, + icon: require('@tabler/icons/icons/trash.svg'), + destructive: true, + }); + } } }