FIX: ensures chat-message is recomputed with model (#20312)

The message model is not yet using tracked properties and as a result we were not correctly recomputing on various cases.
This commit is contained in:
Joffrey JAFFEUX
2023-02-15 15:08:55 +01:00
committed by GitHub
parent 075af7ba84
commit 61934afbb1
2 changed files with 46 additions and 28 deletions
@@ -72,15 +72,15 @@ export default class ChatMessage extends Component {
}
get deletedAndCollapsed() {
return this.args.message?.deleted_at && this.collapsed;
return this.args.message?.get("deleted_at") && this.collapsed;
}
get hiddenAndCollapsed() {
return this.args.message?.hidden && this.collapsed;
return this.args.message?.get("hidden") && this.collapsed;
}
get collapsed() {
return !this.args.message?.expanded;
return !this.args.message?.get("expanded");
}
@action
@@ -169,7 +169,7 @@ export default class ChatMessage extends Component {
get showActions() {
return (
this.args.canInteractWithChat &&
!this.args.message?.staged &&
!this.args.message?.get("staged") &&
this.args.isHovered
);
}
@@ -270,14 +270,15 @@ export default class ChatMessage extends Component {
get hasThread() {
return (
this.args.chatChannel.threading_enabled && this.args.message.thread_id
this.args.chatChannel?.get("threading_enabled") &&
this.args.message?.get("thread_id")
);
}
get show() {
return (
!this.args.message?.deleted_at ||
this.currentUser.id === this.args.message?.user?.id ||
!this.args.message?.get("deleted_at") ||
this.currentUser.id === this.args.message?.get("user.id") ||
this.currentUser.staff ||
this.args.details?.can_moderate
);
@@ -330,43 +331,44 @@ export default class ChatMessage extends Component {
get hideUserInfo() {
return (
this.args.message?.hideUserInfo && !this.args.message?.chat_webhook_event
this.args.message?.get("hideUserInfo") &&
!this.args.message?.get("chat_webhook_event")
);
}
get showEditButton() {
return (
!this.args.message?.deleted_at &&
this.currentUser?.id === this.args.message?.user?.id &&
!this.args.message?.get("deleted_at") &&
this.currentUser?.id === this.args.message?.get("user.id") &&
this.args.chatChannel?.canModifyMessages?.(this.currentUser)
);
}
get canFlagMessage() {
return (
this.currentUser?.id !== this.args.message?.user?.id &&
this.args.message?.user_flag_status === undefined &&
this.currentUser?.id !== this.args.message?.get("user.id") &&
this.args.message?.get("user_flag_status") === undefined &&
this.args.details?.can_flag &&
!this.args.message?.chat_webhook_event &&
!this.args.message.deleted_at
!this.args.message?.get("chat_webhook_event") &&
!this.args.message?.get("deleted_at")
);
}
get canManageDeletion() {
return this.currentUser?.id === this.args.message.user?.id
return this.currentUser?.id === this.args.message.get("user.id")
? this.args.details?.can_delete_self
: this.args.details?.can_delete_others;
}
get canReply() {
return (
!this.args.message?.deleted_at &&
!this.args.message?.get("deleted_at") &&
this.args.chatChannel?.canModifyMessages?.(this.currentUser)
);
}
get canReact() {
return (
!this.args.message?.deleted_at &&
!this.args.message?.get("deleted_at") &&
this.args.chatChannel?.canModifyMessages?.(this.currentUser)
);
}
@@ -374,7 +376,7 @@ export default class ChatMessage extends Component {
get showDeleteButton() {
return (
this.canManageDeletion &&
!this.args.message?.deleted_at &&
!this.args.message?.get("deleted_at") &&
this.args.chatChannel?.canModifyMessages?.(this.currentUser)
);
}
@@ -382,7 +384,7 @@ export default class ChatMessage extends Component {
get showRestoreButton() {
return (
this.canManageDeletion &&
this.args.message?.deleted_at &&
this.args.message?.get("deleted_at") &&
this.args.chatChannel?.canModifyMessages?.(this.currentUser)
);
}