FIX: Make sure user status on mentions doesnt fail in plugins (#19442)

This fixes the problem reported in https://meta.discourse.org/t/trackstatus-error-in-docs-topics/248717 and also guarantees that the same problem won't appear in other plugins.

The problem was that we're calling trackStatus() and on() on a user object, but that only works if it's a user model and fails on plain js objects.

I'm not adding tests here because in Core we always have a properly wrapped user model here. But this fix makes sure that plugins that don't won't fail here.
This commit is contained in:
Andrei Prigorshnev 2022-12-13 16:51:11 +04:00 committed by GitHub
parent fd405179a7
commit 337a033f3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 4 deletions

View File

@ -431,15 +431,15 @@ export default class PostCooked {
_trackMentionedUsersStatus() {
this._post()?.mentioned_users?.forEach((user) => {
user.trackStatus();
user.on("status-changed", this, "_rerenderUserStatusOnMentions");
user.trackStatus?.();
user.on?.("status-changed", this, "_rerenderUserStatusOnMentions");
});
}
_stopTrackingMentionedUsersStatus() {
this._post()?.mentioned_users?.forEach((user) => {
user.stopTrackingStatus();
user.off("status-changed", this, "_rerenderUserStatusOnMentions");
user.stopTrackingStatus?.();
user.off?.("status-changed", this, "_rerenderUserStatusOnMentions");
});
}