diff --git a/app/javascript/dashboard/components-next/message/Message.vue b/app/javascript/dashboard/components-next/message/Message.vue index 01a46da95..2cb1abf19 100644 --- a/app/javascript/dashboard/components-next/message/Message.vue +++ b/app/javascript/dashboard/components-next/message/Message.vue @@ -316,11 +316,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(() => { @@ -345,12 +341,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, // Forward email is enabled only when the message is not in progress and is not private and is an email inbox forwardEmail: props.isEmailInbox && @@ -518,8 +525,8 @@ provideMessageContext({
conversationDynamicScroller.value?.$el -); -const conversationListScrollLock = useScrollLock( - conversationListScrollableElement -); + +provide('contextMenuElementTarget', conversationDynamicScroller); const activeAssigneeTab = ref(wootConstants.ASSIGNEE_TYPE.ME); const activeStatus = ref(wootConstants.STATUS_TYPE.OPEN); @@ -746,7 +741,6 @@ function allSelectedConversationsStatus(status) { function onContextMenuToggle(state) { isContextMenuOpen.value = state; - conversationListScrollLock.value = state; } function toggleSelectAll(check) { @@ -770,10 +764,6 @@ onMounted(() => { } }); -onUnmounted(() => { - conversationListScrollLock.value = false; -}); - provide('selectConversation', selectConversation); provide('deSelectConversation', deSelectConversation); provide('assignAgent', onAssignAgent); diff --git a/app/javascript/dashboard/components/widgets/conversation/Message.vue b/app/javascript/dashboard/components/widgets/conversation/Message.vue index b9623a229..0246b608a 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, forwardEmail: this.isAnEmailInbox && @@ -337,7 +346,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/modules/conversations/components/MessageContextMenu.vue b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue index 9b87a02b4..754fc874b 100644 --- a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue +++ b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue @@ -175,7 +175,7 @@ export default {