Browse Source

fix: only show virtual subline of relative time when there is no message from users

Signed-off-by: Dorra Jaouad <dorra.jaoued7@gmail.com>
pull/15035/head
Dorra Jaouad 6 months ago
committed by backportbot[bot]
parent
commit
b053bbe0a1
  1. 18
      src/composables/useConversationInfo.ts
  2. 3
      src/utils/conversation.ts

18
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,

3
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
}
/**

Loading…
Cancel
Save