WIP: Figuring out messages in thread panel
This commit is contained in:
parent
ff90a56f5b
commit
f47ee8fd40
@ -4,5 +4,14 @@ class ChatThreadSerializer < ApplicationSerializer
|
||||
has_one :original_message_user, serializer: BasicUserWithStatusSerializer, embed: :objects
|
||||
has_one :original_message, serializer: ChatThreadOriginalMessageSerializer, embed: :objects
|
||||
|
||||
attributes :id, :title, :status
|
||||
attributes :id, :title, :status, :messages
|
||||
|
||||
def messages
|
||||
ActiveModel::ArraySerializer.new(
|
||||
object.chat_messages.order(:created_at).last(50),
|
||||
each_serializer: ChatMessageSerializer,
|
||||
chat_channel: object.channel,
|
||||
scope: scope,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@ -32,5 +32,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="chat-thread__messages">
|
||||
{{#each this.thread.messages as |message|}}
|
||||
<ChatMessage
|
||||
@message={{message}}
|
||||
@canInteractWithChat="true"
|
||||
@chatChannel={{this.chat.activeChannel}}
|
||||
@fullPage={{this.chatStateManager.isFullPageActive}}
|
||||
/>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
@ -1,5 +1,6 @@
|
||||
import DiscourseRoute from "discourse/routes/discourse";
|
||||
import { inject as service } from "@ember/service";
|
||||
import ChatMessage from "discourse/plugins/chat/discourse/models/chat-message";
|
||||
|
||||
export default class ChatChannelThread extends DiscourseRoute {
|
||||
@service router;
|
||||
@ -17,5 +18,8 @@ export default class ChatChannelThread extends DiscourseRoute {
|
||||
afterModel(model) {
|
||||
this.chat.activeThread = model;
|
||||
this.chatStateManager.openSidePanel();
|
||||
this.chat.activeThread.messages = (
|
||||
this.chat.activeThread.messages || []
|
||||
).map((message) => ChatMessage.create(message));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user