Chore: Message to support multiple attachments (#730)
* Changes for the message to have multiple attachments * changed the message association to attachments from has_one to has_many * changed all the references of this association in building and fetching to reflect this change * Added number of attachments validation to the message model * Modified the backend responses and endpoints to reflect multiple attachment support (#737) * Changing the frontend components for multiple attachments * changed the request structure to reflect the multiple attachment structures * changed the message bubbles to support multiple attachments * bugfix: agent side attachment was not showing because of a missing await * broken message was shown because of the store filtering * Added documentation for ImageMagick * spec fixes * refactored code to reflect more apt namings * Added updated message listener for the dashboard (#727) * Added the publishing for message updated event * Implemented the listener for dashboard Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
This commit is contained in:
@@ -145,6 +145,10 @@ const actions = {
|
||||
commit(types.default.ADD_MESSAGE, message);
|
||||
},
|
||||
|
||||
updateMessage({ commit }, message) {
|
||||
commit(types.default.ADD_MESSAGE, message);
|
||||
},
|
||||
|
||||
addConversation({ commit }, conversation) {
|
||||
commit(types.default.ADD_CONVERSATION, conversation);
|
||||
},
|
||||
@@ -192,7 +196,7 @@ const actions = {
|
||||
|
||||
sendAttachment: async ({ commit }, data) => {
|
||||
try {
|
||||
const response = MessageApi.sendAttachment(data);
|
||||
const response = await MessageApi.sendAttachment(data);
|
||||
commit(types.default.SEND_MESSAGE, response.data);
|
||||
} catch (error) {
|
||||
// Handle error
|
||||
|
||||
@@ -122,12 +122,13 @@ const mutations = {
|
||||
_state.selectedChat.status = status;
|
||||
},
|
||||
|
||||
[types.default.SEND_MESSAGE](_state, data) {
|
||||
[types.default.SEND_MESSAGE](_state, currentMessage) {
|
||||
const [chat] = getSelectedChatConversation(_state);
|
||||
const previousMessageIds = chat.messages.map(m => m.id);
|
||||
if (!previousMessageIds.includes(data.id)) {
|
||||
chat.messages.push(data);
|
||||
}
|
||||
const allMessagesExceptCurrent = (chat.messages || []).filter(
|
||||
message => message.id !== currentMessage.id
|
||||
);
|
||||
allMessagesExceptCurrent.push(currentMessage);
|
||||
chat.messages = allMessagesExceptCurrent;
|
||||
},
|
||||
|
||||
[types.default.ADD_MESSAGE](_state, message) {
|
||||
@@ -135,12 +136,16 @@ const mutations = {
|
||||
c => c.id === message.conversation_id
|
||||
);
|
||||
if (!chat) return;
|
||||
const previousMessageIds = chat.messages.map(m => m.id);
|
||||
if (!previousMessageIds.includes(message.id)) {
|
||||
const previousMessageIndex = chat.messages.findIndex(
|
||||
m => m.id === message.id
|
||||
);
|
||||
if (previousMessageIndex === -1) {
|
||||
chat.messages.push(message);
|
||||
if (_state.selectedChat.id === message.conversation_id) {
|
||||
window.bus.$emit('scrollToMessage');
|
||||
}
|
||||
} else {
|
||||
chat.messages[previousMessageIndex] = message;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user