FIX: handles different cases of canInvite/canRemove states in PM (#10607)

FIX: handles different cases of canInvite/canRemove states in PM (#10607)

diff --git a/app/assets/javascripts/discourse/app/widgets/private-message-map.js b/app/assets/javascripts/discourse/app/widgets/private-message-map.js
index 6f397d1..1378471 100644
--- a/app/assets/javascripts/discourse/app/widgets/private-message-map.js
+++ b/app/assets/javascripts/discourse/app/widgets/private-message-map.js
@@ -158,15 +158,25 @@ export default createWidget("private-message-map", {
     const result = [h(`div.participants${hideNamesClass}`, participants)];
     const controls = [];
 
-    if (
-      attrs.canInvite ||
-      attrs.canRemoveAllowedUsers ||
-      attrs.canRemoveSelfId
-    ) {
+    const canRemove = attrs.canRemoveAllowedUsers || attrs.canRemoveSelfId;
+
+    if (attrs.canInvite || canRemove) {
+      let key;
+      let action = "toggleEditing";
+
+      if (attrs.canInvite && canRemove) {
+        key = "edit";
+      } else if (!attrs.canInvite && canRemove) {
+        key = "remove";
+      } else {
+        key = "add";
+        action = "showInvite";
+      }
+
       controls.push(
         this.attach("button", {
-          action: "toggleEditing",
-          label: "private_message_info.edit",
+          action,
+          label: `private_message_info.${key}`,
           className: "btn btn-default add-remove-participant-btn",
         })
       );
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index f0cec47..9c8d2bf 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -1586,6 +1586,8 @@ en:
       title: "Message"
       invite: "Invite Others ..."
       edit: "Add or Remove ..."
+      remove: "Remove ..."
+      add: "Add ..."
       leave_message: "Do you really want to leave this message?"
       remove_allowed_user: "Do you really want to remove %{name} from this message?"
       remove_allowed_group: "Do you really want to remove %{name} from this message?"

GitHub sha: 8413d27c

This commit appears in #10607 which was approved by ZogStriP and eviltrout. It was merged by jjaffeux.