FIX: Do not add mentioned groups as mentioned users (#21867)

When a user type a message with mentions, the autocomplete popup 
may suggest users or groups. We were adding all these object to 
the `currentMessage.mentionedUsers` collection, while we should 
have been adding only users. A group added to that collection led to 
the error later when trying to update user status on mentions.
This commit is contained in:
Andrei Prigorshnev 2023-06-01 15:55:59 +04:00 committed by GitHub
parent 89b18b21ec
commit bb21476f68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -415,6 +415,11 @@ export default class ChatComposer extends Component {
} }
} }
#addMentionedUser(userData) {
const user = User.create(userData);
this.currentMessage.mentionedUsers.set(user.id, user);
}
#applyUserAutocomplete($textarea) { #applyUserAutocomplete($textarea) {
if (!this.siteSettings.enable_mentions) { if (!this.siteSettings.enable_mentions) {
return; return;
@ -426,10 +431,12 @@ export default class ChatComposer extends Component {
width: "100%", width: "100%",
treatAsTextarea: true, treatAsTextarea: true,
autoSelectFirstSuggestion: true, autoSelectFirstSuggestion: true,
transformComplete: (userData) => { transformComplete: (obj) => {
const user = User.create(userData); if (obj.isUser) {
this.currentMessage.mentionedUsers.set(user.id, user); this.#addMentionedUser(obj);
return user.username || user.name; }
return obj.username || obj.name;
}, },
dataSource: (term) => { dataSource: (term) => {
return userSearch({ term, includeGroups: true }).then((result) => { return userSearch({ term, includeGroups: true }).then((result) => {