From b053bbe0a15db5dba80a90d889c0358ba6dbc3a4 Mon Sep 17 00:00:00 2001 From: Dorra Jaouad Date: Tue, 29 Apr 2025 12:59:07 +0200 Subject: [PATCH] fix: only show virtual subline of relative time when there is no message from users Signed-off-by: Dorra Jaouad --- src/composables/useConversationInfo.ts | 18 ++++++++++++------ src/utils/conversation.ts | 3 +-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/composables/useConversationInfo.ts b/src/composables/useConversationInfo.ts index 80fde73d6b..87c06195f4 100644 --- a/src/composables/useConversationInfo.ts +++ b/src/composables/useConversationInfo.ts @@ -10,8 +10,9 @@ import type { ComputedRef, Ref } from 'vue' import { t } from '@nextcloud/l10n' import moment from '@nextcloud/moment' +import { useStore } from './useStore.js' import { ATTENDEE, CONVERSATION, PARTICIPANT } from '../constants.ts' -import type { Conversation } from '../types/index.ts' +import type { Conversation, ChatMessage } from '../types/index.ts' import { getEventTimeRange } from '../utils/conversation.ts' import { futureRelativeTime, ONE_DAY_IN_MS } from '../utils/formattedTime.ts' import { getMessageIcon } from '../utils/getMessageIcon.ts' @@ -119,19 +120,24 @@ export function useConversationInfo({ } } - // This is for event conversations where the last message is a system message + // This is for event conversations where no messages from participants are shown const startTime = getEventTimeRange(item.value).start - const showTimeLeft = shortLastChatMessageAuthor.value === '' || lastMessage.value.messageType === 'comment_deleted' if (item.value.objectType === CONVERSATION.OBJECT_TYPE.EVENT - && startTime && startTime > Date.now() && showTimeLeft) { - if (startTime - Date.now() < ONE_DAY_IN_MS) { + && startTime && startTime > Date.now()) { + // Check if there is a message to display + const store = useStore() + const hasHumanMessage = item.value.unreadMessages !== 0 || store.getters.messagesList(item.value.token).some((message: ChatMessage) => { + return message.systemMessage === '' && message.messageType !== 'comment_deleted' + }) + + if (!hasHumanMessage && startTime - Date.now() < ONE_DAY_IN_MS) { return { actor: null, icon: null, message: futureRelativeTime(startTime), title: futureRelativeTime(startTime), } - } else { + } else if (!hasHumanMessage) { return { actor: null, icon: null, diff --git a/src/utils/conversation.ts b/src/utils/conversation.ts index 3dba0ad7ce..14a13aaac1 100644 --- a/src/utils/conversation.ts +++ b/src/utils/conversation.ts @@ -103,8 +103,7 @@ export function shouldEventBeVisible(conversation: Conversation): boolean { if (!startTime) { return false } - return isEvent(conversation) - && startTime - Date.now() < 16 * ONE_HOUR_IN_MS + return startTime - Date.now() < 16 * ONE_HOUR_IN_MS } /**