Skip to content

Commit 3c03e2d

Browse files
committed
changeLastMessage
1 parent 152e4d6 commit 3c03e2d

File tree

3 files changed

+30
-22
lines changed

3 files changed

+30
-22
lines changed

services/static-webserver/client/source/class/osparc/data/model/Conversation.js

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ qx.Class.define("osparc.data.model.Conversation", {
3939
extraContext: conversationData.extraContext || null,
4040
});
4141

42+
this.__messages = [];
4243
this.__fetchLastMessage();
4344
},
4445

@@ -58,13 +59,6 @@ qx.Class.define("osparc.data.model.Conversation", {
5859
apply: "__applyName",
5960
},
6061

61-
nameAlias: {
62-
check: "String",
63-
nullable: false,
64-
init: "",
65-
event: "changeNameAlias",
66-
},
67-
6862
userGroupId: {
6963
check: "Number",
7064
nullable: false,
@@ -111,26 +105,37 @@ qx.Class.define("osparc.data.model.Conversation", {
111105
event: "changeExtraContext",
112106
},
113107

114-
messages: {
115-
check: "Array",
108+
nameAlias: {
109+
check: "String",
116110
nullable: false,
111+
init: "",
112+
event: "changeNameAlias",
113+
},
114+
115+
lastMessage: {
116+
check: "Object",
117+
nullable: true,
117118
init: null,
118-
apply: "__applyMessages",
119+
event: "changeLastMessage",
120+
apply: "__applyLastMessage",
119121
},
120122
},
121123

122124
members: {
123125
__fetchLastMessagePromise: null,
124126
__nextRequestParams: null,
127+
__messages: null,
125128

126129
__applyName: function(name) {
127130
if (name && name !== "null") {
128131
this.setNameAlias(name);
129132
}
130133
},
131134

132-
__applyMessages: function(messages) {
133-
console.log(messages);
135+
__applyLastMessage: function(lastMessage) {
136+
if (this.getNameAlias() === "") {
137+
this.setNameAlias(lastMessage ? lastMessage.content : "");
138+
}
134139
},
135140

136141
__fetchLastMessage: function() {
@@ -141,9 +146,7 @@ qx.Class.define("osparc.data.model.Conversation", {
141146
let promise = osparc.store.ConversationsSupport.getInstance().getLastMessage(this.getConversationId());
142147
promise
143148
.then(lastMessage => {
144-
if (this.getNameAlias() === "") {
145-
this.setNameAlias(lastMessage ? lastMessage.content : "");
146-
}
149+
this.addMessage(lastMessage);
147150
promise = null;
148151
return lastMessage;
149152
})
@@ -196,9 +199,9 @@ qx.Class.define("osparc.data.model.Conversation", {
196199
},
197200

198201
addMessage: function(message) {
199-
const messages = this.getMessages() || [];
200-
messages.push(message);
201-
this.setMessages(messages);
202+
this.__messages.push(message);
203+
204+
this.setLastMessage(this.__messages[0]);
202205
},
203206

204207
getContextProjectId: function() {

services/static-webserver/client/source/class/osparc/store/ConversationsSupport.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,9 @@ qx.Class.define("osparc.store.ConversationsSupport", {
130130
getLastMessage: function(conversationId) {
131131
if (
132132
conversationId in this.__conversationsCached &&
133-
this.__conversationsCached[conversationId].getMessages() &&
134-
this.__conversationsCached[conversationId].getMessages().length
133+
this.__conversationsCached[conversationId].getLastMessage()
135134
) {
136-
return Promise.resolve(this.__conversationsCached[conversationId].getMessages()[0]);
135+
return Promise.resolve(this.__conversationsCached[conversationId].getLastMessage());
137136
}
138137

139138
const params = {

services/static-webserver/client/source/class/osparc/support/ConversationListItem.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ qx.Class.define("osparc.support.ConversationListItem", {
4747
members: {
4848
__applyConversation: function(conversation) {
4949
conversation.bind("nameAlias", this, "title");
50-
conversation.getLastMessage()
50+
51+
this.__populateWithLastMessage();
52+
conversation.addListener("changeLastMessage", this.__populateWithLastMessage, this);
53+
},
54+
55+
__populateWithLastMessage: function() {
56+
this.getConversation().getLastMessage()
5157
.then(lastMessage => {
5258
if (lastMessage) {
5359
const date = osparc.utils.Utils.formatDateAndTime(new Date(lastMessage.created));

0 commit comments

Comments
 (0)