From 117611ea82e5e76d007b229355e64a2c6597325e Mon Sep 17 00:00:00 2001 From: Jan Cernik <66427541+jancernik@users.noreply.github.com> Date: Wed, 3 Jan 2024 11:49:54 -0300 Subject: [PATCH] FIX: 500 error when reviewable has a missing message (#25113) --- .../app/models/chat/reviewable_message.rb | 3 +- .../chat/reviewable_message_serializer.rb | 2 +- .../components/reviewable-chat-message.gjs | 29 +++++++++++-------- plugins/chat/spec/system/reviewables_spec.rb | 16 ++++++++++ 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/plugins/chat/app/models/chat/reviewable_message.rb b/plugins/chat/app/models/chat/reviewable_message.rb index 942e74c4aea..f10d23ba667 100644 --- a/plugins/chat/app/models/chat/reviewable_message.rb +++ b/plugins/chat/app/models/chat/reviewable_message.rb @@ -40,7 +40,8 @@ module Chat def build_actions(actions, guardian, args) return unless pending? - return if chat_message.blank? + + return build_action(actions, :ignore, icon: "external-link-alt") if chat_message.blank? agree = actions.add_bundle( diff --git a/plugins/chat/app/serializers/chat/reviewable_message_serializer.rb b/plugins/chat/app/serializers/chat/reviewable_message_serializer.rb index 051a118344e..97b18ac2508 100644 --- a/plugins/chat/app/serializers/chat/reviewable_message_serializer.rb +++ b/plugins/chat/app/serializers/chat/reviewable_message_serializer.rb @@ -15,7 +15,7 @@ module Chat end def chat_channel - object.chat_message.chat_channel + object.chat_message&.chat_channel end def target_id diff --git a/plugins/chat/assets/javascripts/discourse/components/reviewable-chat-message.gjs b/plugins/chat/assets/javascripts/discourse/components/reviewable-chat-message.gjs index 4635ab4585c..745f0df949d 100644 --- a/plugins/chat/assets/javascripts/discourse/components/reviewable-chat-message.gjs +++ b/plugins/chat/assets/javascripts/discourse/components/reviewable-chat-message.gjs @@ -17,22 +17,27 @@ export default class ReviewableChatMessage extends Component { @cached get channel() { + if (!this.args.reviewable.chat_channel) { + return; + } return ChatChannel.create(this.args.reviewable.chat_channel); }