diff --git a/app/soapbox/components/sidebar_menu.js b/app/soapbox/components/sidebar_menu.js
index 8bbde589d..bae67ba83 100644
--- a/app/soapbox/components/sidebar_menu.js
+++ b/app/soapbox/components/sidebar_menu.js
@@ -218,14 +218,14 @@ class SidebarMenu extends ImmutablePureComponent {
{intl.formatMessage(messages.donate_crypto)}
}
-
+ {features.lists &&
{intl.formatMessage(messages.lists)}
-
-
+ }
+ {features.bookmarks &&
{intl.formatMessage(messages.bookmarks)}
-
+ }
diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js
index b7ee34aae..7e15c9d9f 100644
--- a/app/soapbox/components/status_action_bar.js
+++ b/app/soapbox/components/status_action_bar.js
@@ -290,7 +290,7 @@ class StatusActionBar extends ImmutablePureComponent {
}
_makeMenu = (publicStatus) => {
- const { status, intl, withDismiss, withGroupAdmin, me, isStaff, isAdmin } = this.props;
+ const { status, intl, withDismiss, withGroupAdmin, me, features, isStaff, isAdmin } = this.props;
const mutingConversation = status.get('muted');
const ownAccount = status.getIn(['account', 'id']) === me;
@@ -303,7 +303,9 @@ class StatusActionBar extends ImmutablePureComponent {
// menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
}
- menu.push({ text: intl.formatMessage(status.get('bookmarked') ? messages.unbookmark : messages.bookmark), action: this.handleBookmarkClick });
+ if (features.bookmarks) {
+ menu.push({ text: intl.formatMessage(status.get('bookmarked') ? messages.unbookmark : messages.bookmark), action: this.handleBookmarkClick });
+ }
if (!me) {
return menu;
diff --git a/app/soapbox/features/account/components/header.js b/app/soapbox/features/account/components/header.js
index f3bc72a38..f5a4efe35 100644
--- a/app/soapbox/features/account/components/header.js
+++ b/app/soapbox/features/account/components/header.js
@@ -189,16 +189,21 @@ class Header extends ImmutablePureComponent {
menu.push({ text: intl.formatMessage(messages.showReblogs, { name: account.get('username') }), action: this.props.onReblogToggle });
}
- if (account.getIn(['relationship', 'subscribing'])) {
- menu.push({ text: intl.formatMessage(messages.unsubscribe, { name: account.get('username') }), action: this.props.onSubscriptionToggle });
- } else {
- menu.push({ text: intl.formatMessage(messages.subscribe, { name: account.get('username') }), action: this.props.onSubscriptionToggle });
+ if (features.accountSubscriptions) {
+ if (account.getIn(['relationship', 'subscribing'])) {
+ menu.push({ text: intl.formatMessage(messages.unsubscribe, { name: account.get('username') }), action: this.props.onSubscriptionToggle });
+ } else {
+ menu.push({ text: intl.formatMessage(messages.subscribe, { name: account.get('username') }), action: this.props.onSubscriptionToggle });
+ }
+ }
+
+ if (features.lists) {
+ menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
}
- menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
// menu.push({ text: intl.formatMessage(account.getIn(['relationship', 'endorsed']) ? messages.unendorse : messages.endorse), action: this.props.onEndorseToggle });
menu.push(null);
- } else if (features.unrestrictedLists) {
+ } else if (features.lists && features.unrestrictedLists) {
menu.push({ text: intl.formatMessage(messages.add_or_remove_from_list), action: this.props.onAddToList });
}
diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js
index 332108133..d569bcf76 100644
--- a/app/soapbox/features/status/components/action_bar.js
+++ b/app/soapbox/features/status/components/action_bar.js
@@ -315,7 +315,9 @@ class ActionBar extends React.PureComponent {
// menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });
}
- menu.push({ text: intl.formatMessage(status.get('bookmarked') ? messages.unbookmark : messages.bookmark), action: this.handleBookmarkClick });
+ if (features.bookmarks) {
+ menu.push({ text: intl.formatMessage(status.get('bookmarked') ? messages.unbookmark : messages.bookmark), action: this.handleBookmarkClick });
+ }
menu.push(null);
diff --git a/app/soapbox/features/ui/components/features_panel.js b/app/soapbox/features/ui/components/features_panel.js
index dd8314778..7c4d564a7 100644
--- a/app/soapbox/features/ui/components/features_panel.js
+++ b/app/soapbox/features/ui/components/features_panel.js
@@ -62,15 +62,19 @@ class FeaturesPanel extends React.PureComponent {
{intl.formatMessage(messages.follow_requests)}
}
-
-
- {intl.formatMessage(messages.bookmarks)}
-
+ {features.bookmarks && (
+
+
+ {intl.formatMessage(messages.bookmarks)}
+
+ )}
-
-
- {intl.formatMessage(messages.lists)}
-
+ {features.lists && (
+
+
+ {intl.formatMessage(messages.lists)}
+
+ )}
{features.securityAPI ? (