From 074604a1c930ebd595887339e4f1c6e2bd387467 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 18 Sep 2021 15:03:38 -0500 Subject: [PATCH] Put Bookmarks and Lists behind feature flags --- app/soapbox/components/sidebar_menu.js | 8 ++++---- app/soapbox/components/status_action_bar.js | 6 ++++-- .../features/account/components/header.js | 17 ++++++++++------ .../features/status/components/action_bar.js | 4 +++- .../features/ui/components/features_panel.js | 20 +++++++++++-------- 5 files changed, 34 insertions(+), 21 deletions(-) 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 ? (