sforkowany z mirror/soapbox
Don't show menu items requiring auth when not authenticated for detailed statuses
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>strip-front-mentions
rodzic
8a863d7587
commit
f52b69ebbb
|
@ -337,123 +337,125 @@ class ActionBar extends React.PureComponent {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
menu.push(null);
|
if (me) {
|
||||||
|
menu.push(null);
|
||||||
|
|
||||||
if (ownAccount) {
|
if (ownAccount) {
|
||||||
if (publicStatus) {
|
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') {
|
|
||||||
menu.push({
|
menu.push({
|
||||||
text: intl.formatMessage(status.get('reblogged') ? messages.cancel_reblog_private : messages.reblog_private),
|
text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin),
|
||||||
action: this.handleReblogClick,
|
action: this.handlePinClick,
|
||||||
icon: require('@tabler/icons/icons/repeat.svg'),
|
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(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({
|
menu.push({
|
||||||
text: intl.formatMessage(messages.chat, { name: status.getIn(['account', 'username']) }),
|
text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation),
|
||||||
action: this.handleChatClick,
|
action: this.handleConversationMuteClick,
|
||||||
icon: require('@tabler/icons/icons/messages.svg'),
|
icon: require(mutingConversation ? '@tabler/icons/icons/bell.svg' : '@tabler/icons/icons/bell-off.svg'),
|
||||||
});
|
});
|
||||||
} else {
|
menu.push(null);
|
||||||
menu.push({
|
menu.push({
|
||||||
text: intl.formatMessage(messages.direct, { name: status.getIn(['account', 'username']) }),
|
text: intl.formatMessage(messages.delete),
|
||||||
action: this.handleDirectClick,
|
action: this.handleDeleteClick,
|
||||||
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'),
|
icon: require('@tabler/icons/icons/trash.svg'),
|
||||||
destructive: true,
|
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,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue