feat: show ReplyTo in widget UI (#8094)

Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
This commit is contained in:
Shivam Mishra
2023-10-27 13:35:02 +05:30
committed by GitHub
parent ab872beb1d
commit d94108bf3f
22 changed files with 426 additions and 82 deletions

View File

@@ -28,18 +28,17 @@ export const actions = {
}
},
sendMessage: async ({ dispatch }, params) => {
const { content } = params;
const message = createTemporaryMessage({ content });
const { content, replyTo } = params;
const message = createTemporaryMessage({ content, replyTo });
dispatch('sendMessageWithData', message);
},
sendMessageWithData: async ({ commit }, message) => {
const { id, content, meta = {} } = message;
const { id, content, replyTo, meta = {} } = message;
commit('pushMessageToConversation', message);
commit('updateMessageMeta', { id, meta: { ...meta, error: '' } });
try {
const { data } = await sendMessageAPI(content);
const { data } = await sendMessageAPI(content, replyTo);
commit('deleteMessage', message.id);
commit('pushMessageToConversation', { ...data, status: 'sent' });
@@ -69,6 +68,7 @@ export const actions = {
};
const tempMessage = createTemporaryMessage({
attachments: [attachment],
replyTo: params.replyTo,
});
commit('pushMessageToConversation', tempMessage);
try {

View File

@@ -2,13 +2,14 @@ import { MESSAGE_TYPE } from 'widget/helpers/constants';
import { isASubmittedFormMessage } from 'shared/helpers/MessageTypeHelper';
import getUuid from '../../../helpers/uuid';
export const createTemporaryMessage = ({ attachments, content }) => {
export const createTemporaryMessage = ({ attachments, content, replyTo }) => {
const timestamp = new Date().getTime() / 1000;
return {
id: getUuid(),
content,
attachments,
status: 'in_progress',
replyTo,
created_at: timestamp,
message_type: MESSAGE_TYPE.INCOMING,
};

View File

@@ -110,7 +110,10 @@ describe('#actions', () => {
search: '?param=1',
},
}));
await actions.sendMessage({ commit, dispatch }, { content: 'hello' });
await actions.sendMessage(
{ commit, dispatch },
{ content: 'hello', replyTo: 124 }
);
spy.mockRestore();
windowSpy.mockRestore();
expect(dispatch).toBeCalledWith('sendMessageWithData', {
@@ -119,6 +122,7 @@ describe('#actions', () => {
created_at: 1466424490,
id: '1111',
message_type: 0,
replyTo: 124,
status: 'in_progress',
});
});
@@ -132,7 +136,10 @@ describe('#actions', () => {
const thumbUrl = '';
const attachment = { thumbUrl, fileType: 'file' };
actions.sendAttachment({ commit, dispatch }, { attachment });
actions.sendAttachment(
{ commit, dispatch },
{ attachment, replyTo: 135 }
);
spy.mockRestore();
expect(commit).toBeCalledWith('pushMessageToConversation', {
id: '1111',
@@ -140,6 +147,7 @@ describe('#actions', () => {
status: 'in_progress',
created_at: 1466424490,
message_type: 0,
replyTo: 135,
attachments: [
{
thumb_url: '',

View File

@@ -35,6 +35,15 @@ describe('#createTemporaryMessage', () => {
expect(message.content).toBe('hello');
expect(message.status).toBe('in_progress');
});
it('returns message object with reply to', () => {
const message = createTemporaryMessage({
content: 'hello',
replyTo: 124,
});
expect(message.content).toBe('hello');
expect(message.status).toBe('in_progress');
expect(message.replyTo).toBe(124);
});
});
describe('#getNonDeletedMessages', () => {