]> cat aescling's git repositories - mastodon.git/commitdiff
[Glitch] Slightly reorder three dots menu on toots to make it more intuitive
authorMélanie Chauvel <perso@hack-libre.org>
Thu, 11 Feb 2021 00:05:04 +0000 (01:05 +0100)
committerClaire <claire.github-309c@sitedethib.com>
Fri, 12 Feb 2021 09:55:37 +0000 (10:55 +0100)
Port f5fefdc11aee24626d78480766fda878911f58b7 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
app/javascript/flavours/glitch/components/status_action_bar.js
app/javascript/flavours/glitch/features/status/components/action_bar.js

index 2ccb02c624fc26104cb0a88e115fd5e430396b60..74bfd948ed9c52ec9ee554ce48ab5b04c8b978b4 100644 (file)
@@ -193,9 +193,10 @@ class StatusActionBar extends ImmutablePureComponent {
   render () {
     const { status, intl, withDismiss, showReplyCount, directMessage, scrollKey } = this.props;
 
-    const mutingConversation = status.get('muted');
     const anonymousAccess    = !me;
+    const mutingConversation = status.get('muted');
     const publicStatus       = ['public', 'unlisted'].includes(status.get('visibility'));
+    const writtenByMe        = status.getIn(['account', 'id']) === me;
 
     let menu = [];
     let reblogIcon = 'retweet';
@@ -211,16 +212,17 @@ class StatusActionBar extends ImmutablePureComponent {
 
     menu.push(null);
 
-    if (status.getIn(['account', 'id']) === me || withDismiss) {
-      menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick });
+    if (writtenByMe && publicStatus) {
+      menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
       menu.push(null);
     }
 
-    if (status.getIn(['account', 'id']) === me) {
-      if (publicStatus) {
-        menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
-      }
+    if (writtenByMe || withDismiss) {
+      menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick });
+      menu.push(null);
+    }
 
+    if (writtenByMe) {
       menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick });
       menu.push({ text: intl.formatMessage(messages.redraft), action: this.handleRedraftClick });
     } else {
index 0f16d93fe31ab677e2944f7c916fea6cb47a1e82..6ed5f38659fd96c910114f08a02c3c792112382e 100644 (file)
@@ -145,8 +145,9 @@ class ActionBar extends React.PureComponent {
   render () {
     const { status, intl } = this.props;
 
-    const publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));
+    const publicStatus       = ['public', 'unlisted'].includes(status.get('visibility'));
     const mutingConversation = status.get('muted');
+    const writtenByMe        = status.getIn(['account', 'id']) === me;
 
     let menu = [];
 
@@ -156,12 +157,12 @@ class ActionBar extends React.PureComponent {
       menu.push(null);
     }
 
-    if (me === status.getIn(['account', 'id'])) {
+    if (writtenByMe) {
       if (publicStatus) {
         menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });
+        menu.push(null);
       }
 
-      menu.push(null);
       menu.push({ text: intl.formatMessage(mutingConversation ? messages.unmuteConversation : messages.muteConversation), action: this.handleConversationMuteClick });
       menu.push(null);
       menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick });