From 1ff4c6ce83c7ff03c47e74e810dd8faa2689691b Mon Sep 17 00:00:00 2001 From: Martin Kraft Date: Thu, 10 Jan 2019 04:37:11 -0500 Subject: [PATCH] =?UTF-8?q?MM-13654:=20Removes=20pin=20and=20delete=20long?= =?UTF-8?q?press=20options=20from=20posts=20in=20arch=E2=80=A6=20(#2495)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * MM-13654: Removes pin and delete longpress options from posts in archived channels. * MM-13654: Maintains existing option order. Updates others' posts options. --- app/screens/post_options/index.js | 6 ++++++ app/screens/post_options/post_options.js | 21 +++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/app/screens/post_options/index.js b/app/screens/post_options/index.js index a773f1afe..d2a8c6cb8 100644 --- a/app/screens/post_options/index.js +++ b/app/screens/post_options/index.js @@ -41,6 +41,8 @@ function mapStateToProps(state, ownProps) { let canAddReaction = true; let canEdit = false; let canEditUntil = -1; + let canDelete = true; + let canPin = true; if (hasNewPermissions(state)) { canAddReaction = haveIChannelPermission(state, { @@ -52,6 +54,8 @@ function mapStateToProps(state, ownProps) { if (channelIsArchived) { canAddReaction = false; + canDelete = false; + canPin = false; } else { canEdit = canEditPost(state, config, license, currentTeamId, currentChannelId, currentUserId, post); if (canEdit && license.IsLicensed === 'true' && @@ -66,6 +70,8 @@ function mapStateToProps(state, ownProps) { canAddReaction, canEdit, canEditUntil, + canDelete, + canPin, currentTeamUrl: getCurrentTeamUrl(state), isMyPost: currentUserId === post.user_id, post, diff --git a/app/screens/post_options/post_options.js b/app/screens/post_options/post_options.js index d4151eabf..e47f1d4da 100644 --- a/app/screens/post_options/post_options.js +++ b/app/screens/post_options/post_options.js @@ -29,6 +29,7 @@ export default class PostOptions extends PureComponent { additionalOption: PropTypes.object, canAddReaction: PropTypes.bool, canDelete: PropTypes.bool, + canPin: PropTypes.bool, canEdit: PropTypes.bool, canEditUntil: PropTypes.number.isRequired, channelIsReadOnly: PropTypes.bool, @@ -210,13 +211,19 @@ export default class PostOptions extends PureComponent { const actions = [ this.getEditOption(), this.getFlagOption(), - this.getPinOption(), this.getAddReactionOption(), this.getCopyPermalink(), this.getCopyText(), - this.getDeleteOption(), ]; + const {canDelete, canPin} = this.props; + if (canPin) { + actions.splice(2, 0, this.getPinOption()); + } + if (canDelete) { + actions.push(this.getDeleteOption()); + } + return actions.filter((a) => a !== null); }; @@ -224,13 +231,19 @@ export default class PostOptions extends PureComponent { const actions = [ this.getFlagOption(), this.getAddReactionOption(), - this.getPinOption(), this.getCopyPermalink(), this.getCopyText(), this.getEditOption(), - this.getDeleteOption(), ]; + const {canDelete, canPin} = this.props; + if (canPin) { + actions.splice(2, 0, this.getPinOption()); + } + if (canDelete) { + actions.push(this.getDeleteOption()); + } + return actions.filter((a) => a !== null); };