From e048ba571663202bcbb3c15e24f0c76f5c37c1ca Mon Sep 17 00:00:00 2001 From: Abhinav Raut Date: Sun, 17 May 2026 22:54:05 +0530 Subject: [PATCH] improve conversation thread and inbox list ux Add expand button for long message bubbles, group consecutive same-sender messages within a minute, and fix the conversation list highlight contrast (Fixes #321). Also bumps vue-letter to 0.2.1 to allow CSS transforms in email content --- .../list/ConversationListItem.vue | 21 ++- .../conversation/message/MessageBubble.vue | 150 +++++++++++++----- .../conversation/message/MessageList.vue | 74 +++++++-- .../widget/src/components/ChatMessages.vue | 4 + frontend/package.json | 3 +- frontend/pnpm-lock.yaml | 21 +-- frontend/shared-ui/assets/styles/main.scss | 8 +- 7 files changed, 206 insertions(+), 75 deletions(-) diff --git a/frontend/apps/main/src/features/conversation/list/ConversationListItem.vue b/frontend/apps/main/src/features/conversation/list/ConversationListItem.vue index cfa7b441..f4011c56 100644 --- a/frontend/apps/main/src/features/conversation/list/ConversationListItem.vue +++ b/frontend/apps/main/src/features/conversation/list/ConversationListItem.vue @@ -3,10 +3,11 @@
@@ -51,9 +52,14 @@
-

- {{ contactFullName }} -

+ + +

+ {{ contactFullName }} +

+
+ {{ contactFullName }} +
{{ conversation.inbox_name }} @@ -154,6 +160,7 @@ import { ContextMenuTrigger } from '@shared-ui/components/ui/context-menu' import SlaBadge from '@main/features/sla/SlaBadge.vue' +import { Tooltip, TooltipContent, TooltipTrigger } from '@shared-ui/components/ui/tooltip' import { Checkbox } from '@shared-ui/components/ui/checkbox' import { useConversationStore } from '@main/stores/conversation' import { useBulkActionPermissions } from '@/composables/useBulkActionPermissions' @@ -235,6 +242,8 @@ const draftPreview = computed(() => { return text.length > 120 ? text.slice(0, 120) + '...' : text }) +const isCurrent = computed(() => props.conversation.uuid === props.currentConversation?.uuid) + const isItemSelected = computed(() => { return conversationStore.isSelected(props.conversation.uuid) }) diff --git a/frontend/apps/main/src/features/conversation/message/MessageBubble.vue b/frontend/apps/main/src/features/conversation/message/MessageBubble.vue index 3a4a66d7..562db8d8 100644 --- a/frontend/apps/main/src/features/conversation/message/MessageBubble.vue +++ b/frontend/apps/main/src/features/conversation/message/MessageBubble.vue @@ -1,7 +1,11 @@