diff --git a/app/javascript/dashboard/components-next/button/Button.vue b/app/javascript/dashboard/components-next/button/Button.vue index 1dfe488e9..3afe7b644 100644 --- a/app/javascript/dashboard/components-next/button/Button.vue +++ b/app/javascript/dashboard/components-next/button/Button.vue @@ -133,7 +133,7 @@ const STYLE_CONFIG = { }, slate: { solid: - 'bg-n-solid-3 dark:hover:enabled:bg-n-solid-2 dark:focus-visible:bg-n-solid-2 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 text-n-slate-12 outline-n-container', + 'bg-n-button-color dark:hover:enabled:bg-n-solid-2 dark:focus-visible:bg-n-solid-2 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 text-n-slate-12 outline-n-container', faded: 'bg-n-slate-9/10 text-n-slate-12 hover:enabled:bg-n-slate-9/20 focus-visible:bg-n-slate-9/20 outline-transparent', outline: diff --git a/app/javascript/dashboard/components-next/message/Message.vue b/app/javascript/dashboard/components-next/message/Message.vue index dd655d0cc..ecc6f4f00 100644 --- a/app/javascript/dashboard/components-next/message/Message.vue +++ b/app/javascript/dashboard/components-next/message/Message.vue @@ -498,7 +498,7 @@ provideMessageContext({ 'w-full': variant === MESSAGE_VARIANTS.EMAIL, }, ]" - class="gap-x-2" + class="gap-x-3" :style="{ gridTemplateAreas: gridTemplate, }" @@ -508,7 +508,7 @@ provideMessageContext({ v-tooltip.left-end="avatarTooltip" class="[grid-area:avatar] flex items-end" > - +
{ nextMessageType === MESSAGE_TYPES.TEMPLATE && currentMessageType === MESSAGE_TYPES.TEMPLATE; - if (!hasSameSender || areBothTemplates) return false; + const areBothActivity = + nextMessageType === MESSAGE_TYPES.ACTIVITY && + currentMessageType === MESSAGE_TYPES.ACTIVITY; + + if (!hasSameSender || areBothTemplates || areBothActivity) return false; if (currentMessageType !== nextMessageType) return false; @@ -157,6 +161,17 @@ const getInReplyToMessage = parentMessage => { return replyMessage ? useCamelCase(replyMessage) : null; }; + +const getMessageSpacingClass = (message, messages, index) => { + // For non-activity messages, use groupWithNext logic + if (message.messageType !== MESSAGE_TYPES.ACTIVITY) { + return shouldGroupWithNext(index, messages) ? 'mb-1' : 'mb-6'; + } + + // For activity messages, check next message exists and is also an activity + const nextMessage = messages[index + 1]; + return nextMessage?.messageType === MESSAGE_TYPES.ACTIVITY ? 'mb-2' : 'mb-6'; +}; diff --git a/app/javascript/dashboard/components-next/message/MessageMeta.vue b/app/javascript/dashboard/components-next/message/MessageMeta.vue index e0602cb89..3069896e9 100644 --- a/app/javascript/dashboard/components-next/message/MessageMeta.vue +++ b/app/javascript/dashboard/components-next/message/MessageMeta.vue @@ -123,10 +123,13 @@ const statusToShow = computed(() => { diff --git a/app/javascript/dashboard/components-next/message/MessageStatus.vue b/app/javascript/dashboard/components-next/message/MessageStatus.vue index d8f996cf5..11e12aa0b 100644 --- a/app/javascript/dashboard/components-next/message/MessageStatus.vue +++ b/app/javascript/dashboard/components-next/message/MessageStatus.vue @@ -58,7 +58,7 @@ const statusColor = computed(() => { const statusIconMap = { [MESSAGE_STATUS.SENT]: 'text-n-slate-10', [MESSAGE_STATUS.DELIVERED]: 'text-n-slate-10', - [MESSAGE_STATUS.READ]: 'text-[#7EB6FF]', + [MESSAGE_STATUS.READ]: 'text-n-blue-11', }; return statusIconMap[status]; diff --git a/app/javascript/dashboard/components-next/message/bubbles/Base.vue b/app/javascript/dashboard/components-next/message/bubbles/Base.vue index f66f272de..e46cb3f82 100644 --- a/app/javascript/dashboard/components-next/message/bubbles/Base.vue +++ b/app/javascript/dashboard/components-next/message/bubbles/Base.vue @@ -18,14 +18,14 @@ const { variant, orientation, inReplyTo, shouldGroupWithNext } = useMessageContext(); const { t } = useI18n(); -const varaintBaseMap = { - [MESSAGE_VARIANTS.AGENT]: 'bg-n-solid-blue text-n-slate-12', +const variantBaseMap = { + [MESSAGE_VARIANTS.AGENT]: 'bg-n-solid-blue text-n-blue-text', [MESSAGE_VARIANTS.PRIVATE]: - 'bg-n-solid-amber text-n-amber-12 [&_.prosemirror-mention-node]:font-semibold', + 'bg-n-solid-amber text-n-amber-text [&_.prosemirror-mention-node]:font-semibold', [MESSAGE_VARIANTS.USER]: 'bg-n-slate-4 text-n-slate-12', [MESSAGE_VARIANTS.ACTIVITY]: 'bg-n-alpha-1 text-n-slate-11 text-sm', - [MESSAGE_VARIANTS.BOT]: 'bg-n-solid-iris text-n-slate-12', - [MESSAGE_VARIANTS.TEMPLATE]: 'bg-n-solid-iris text-n-slate-12', + [MESSAGE_VARIANTS.BOT]: 'bg-n-solid-purple text-n-purple-text', + [MESSAGE_VARIANTS.TEMPLATE]: 'bg-n-solid-purple text-n-purple-text', [MESSAGE_VARIANTS.ERROR]: 'bg-n-ruby-4 text-n-ruby-12', [MESSAGE_VARIANTS.EMAIL]: 'w-full', [MESSAGE_VARIANTS.UNSUPPORTED]: @@ -51,7 +51,7 @@ const flexOrientationClass = computed(() => { }); const messageClass = computed(() => { - const classToApply = [varaintBaseMap[variant.value]]; + const classToApply = [variantBaseMap[variant.value]]; if (variant.value !== MESSAGE_VARIANTS.ACTIVITY) { classToApply.push(orientationMap[orientation.value]); @@ -118,7 +118,7 @@ const replyToPreview = computed(() => { flexOrientationClass, variant === MESSAGE_VARIANTS.EMAIL ? 'px-3 pb-3' : '', variant === MESSAGE_VARIANTS.PRIVATE - ? 'text-n-amber-12/50' + ? 'text-n-amber-text' : 'text-n-slate-11', ]" class="mt-2" diff --git a/app/javascript/dashboard/components/buttons/ResolveAction.vue b/app/javascript/dashboard/components/buttons/ResolveAction.vue index 3bd2314f8..dcd2c9929 100644 --- a/app/javascript/dashboard/components/buttons/ResolveAction.vue +++ b/app/javascript/dashboard/components/buttons/ResolveAction.vue @@ -139,8 +139,7 @@ useEmitter(CMD_RESOLVE_CONVERSATION, onCmdResolveConversation);