diff --git a/app/javascript/dashboard/components-next/message/Message.vue b/app/javascript/dashboard/components-next/message/Message.vue
index cf6cc0881..98323f79a 100644
--- a/app/javascript/dashboard/components-next/message/Message.vue
+++ b/app/javascript/dashboard/components-next/message/Message.vue
@@ -315,11 +315,7 @@ const componentToRender = computed(() => {
});
const shouldShowContextMenu = computed(() => {
- return !(
- props.status === MESSAGE_STATUS.FAILED ||
- props.status === MESSAGE_STATUS.PROGRESS ||
- props.contentAttributes?.isUnsupported
- );
+ return !props.contentAttributes?.isUnsupported;
});
const isBubble = computed(() => {
@@ -344,12 +340,23 @@ const contextMenuEnabledOptions = computed(() => {
const hasAttachments = !!(props.attachments && props.attachments.length > 0);
const isOutgoing = props.messageType === MESSAGE_TYPES.OUTGOING;
+ const isFailedOrProcessing =
+ props.status === MESSAGE_STATUS.FAILED ||
+ props.status === MESSAGE_STATUS.PROGRESS;
return {
copy: hasText,
- delete: hasText || hasAttachments,
- cannedResponse: isOutgoing && hasText,
- replyTo: !props.private && props.inboxSupportsReplyTo.outgoing,
+ delete:
+ (hasText || hasAttachments) &&
+ !isFailedOrProcessing &&
+ !isMessageDeleted.value,
+ cannedResponse: isOutgoing && hasText && !isMessageDeleted.value,
+ copyLink: !isFailedOrProcessing,
+ translate: !isFailedOrProcessing && !isMessageDeleted.value && hasText,
+ replyTo:
+ !props.private &&
+ props.inboxSupportsReplyTo.outgoing &&
+ !isFailedOrProcessing,
};
});
@@ -499,8 +506,8 @@ provideMessageContext({
diff --git a/app/javascript/dashboard/components/widgets/conversation/Message.vue b/app/javascript/dashboard/components/widgets/conversation/Message.vue
index 253eaeaa7..bed90fd05 100644
--- a/app/javascript/dashboard/components/widgets/conversation/Message.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/Message.vue
@@ -185,8 +185,17 @@ export default {
contextMenuEnabledOptions() {
return {
copy: this.hasText,
- delete: this.hasText || this.hasAttachments,
- cannedResponse: this.isOutgoing && this.hasText,
+ delete:
+ (this.hasText || this.hasAttachments) &&
+ !this.isMessageDeleted &&
+ !this.isFailed,
+ cannedResponse:
+ this.isOutgoing && this.hasText && !this.isMessageDeleted,
+ copyLink: !this.isFailed || !this.isProcessing,
+ translate:
+ (!this.isFailed || !this.isProcessing) &&
+ !this.isMessageDeleted &&
+ this.hasText,
replyTo: !this.data.private && this.inboxSupportsReplyTo.outgoing,
};
},
@@ -328,7 +337,7 @@ export default {
return !this.sender.type || this.sender.type === 'agent_bot';
},
shouldShowContextMenu() {
- return !(this.isFailed || this.isPending || this.isUnsupported);
+ return !this.isUnsupported;
},
showAvatar() {
if (this.isOutgoing || this.isTemplate) {
diff --git a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
index 8d0c77f1b..e5e5da385 100644
--- a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
@@ -1,5 +1,5 @@