2019-10-29 07:20:54 +00:00
|
|
|
<template>
|
2019-11-29 12:12:35 +00:00
|
|
|
<UserMessage
|
|
|
|
v-if="isUserMessage"
|
|
|
|
:message="message.content"
|
|
|
|
:status="message.status"
|
|
|
|
/>
|
2019-12-15 18:23:04 +00:00
|
|
|
<AgentMessage
|
|
|
|
v-else
|
|
|
|
:agent-name="agentName"
|
2020-01-09 07:36:40 +00:00
|
|
|
:avatar-url="avatarUrl"
|
|
|
|
:content-type="message.content_type"
|
|
|
|
:message-content-attributes="message.content_attributes"
|
|
|
|
:message-id="message.id"
|
|
|
|
:message-type="message.message_type"
|
2019-12-15 18:23:04 +00:00
|
|
|
:message="message.content"
|
|
|
|
:show-avatar="message.showAvatar"
|
|
|
|
/>
|
2019-10-29 07:20:54 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import AgentMessage from 'widget/components/AgentMessage.vue';
|
|
|
|
import UserMessage from 'widget/components/UserMessage.vue';
|
|
|
|
import { MESSAGE_TYPE } from 'widget/helpers/constants';
|
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
|
|
|
AgentMessage,
|
|
|
|
UserMessage,
|
|
|
|
},
|
|
|
|
props: {
|
|
|
|
message: Object,
|
2019-12-15 18:23:04 +00:00
|
|
|
showAvatar: Boolean,
|
2019-10-29 07:20:54 +00:00
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
isUserMessage() {
|
|
|
|
return this.message.message_type === MESSAGE_TYPE.INCOMING;
|
|
|
|
},
|
2019-11-27 04:42:57 +00:00
|
|
|
agentName() {
|
2020-01-09 07:36:40 +00:00
|
|
|
if (this.message.message_type === MESSAGE_TYPE.TEMPLATE) {
|
|
|
|
return 'Bot';
|
|
|
|
}
|
|
|
|
|
2019-11-27 04:42:57 +00:00
|
|
|
return this.message.sender ? this.message.sender.name : '';
|
|
|
|
},
|
2019-12-15 18:23:04 +00:00
|
|
|
avatarUrl() {
|
2020-01-09 07:36:40 +00:00
|
|
|
if (this.message.message_type === MESSAGE_TYPE.TEMPLATE) {
|
|
|
|
// eslint-disable-next-line
|
|
|
|
return require('dashboard/assets/images/chatwoot_bot.png');
|
|
|
|
}
|
|
|
|
|
2019-12-15 18:23:04 +00:00
|
|
|
return this.message.sender ? this.message.sender.avatar_url : '';
|
|
|
|
},
|
2019-10-29 07:20:54 +00:00
|
|
|
},
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.message-wrap {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
align-items: flex-end;
|
|
|
|
max-width: 90%;
|
|
|
|
}
|
|
|
|
</style>
|