Browse Source

fix: do not load conversation avatar as guest before getting a session

Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
Maksim Sukharev 2 weeks ago
parent
commit
b54e657479
  1. 13
      src/components/ConversationIcon.vue
  2. 16
      src/components/RightSidebar/RightSidebarContent.vue

13
src/components/ConversationIcon.vue

@ -174,8 +174,17 @@ export default {
return getPreloadedUserStatus(this.item)
},
canRequestAvatar() {
if (!supportsAvatar || this.item.isDummyConversation) {
return false
}
// Endpoint limited with #RequireParticipantOrLoggedInAndListedConversation
return !!this.item.actorId
},
iconClass() {
return getFallbackIconClass(this.item, this.failed)
return getFallbackIconClass(this.item, this.failed || !this.canRequestAvatar)
},
themeClass() {
@ -196,7 +205,7 @@ export default {
},
avatarUrl() {
if (!supportsAvatar || this.item.isDummyConversation) {
if (!this.canRequestAvatar) {
return undefined
}

16
src/components/RightSidebar/RightSidebarContent.vue

@ -30,6 +30,7 @@ import LocalTime from '../UIShared/LocalTime.vue'
import { useGetToken } from '../../composables/useGetToken.ts'
import { CONVERSATION } from '../../constants.ts'
import { getConversationAvatarOcsUrl } from '../../services/avatarService.ts'
import { hasTalkFeature } from '../../services/CapabilitiesManager.ts'
import { useGroupwareStore } from '../../stores/groupware.ts'
import { getFallbackIconClass } from '../../utils/conversation.ts'
import { convertToUnix } from '../../utils/formattedTime.ts'
@ -55,6 +56,8 @@ const emit = defineEmits<{
(event: 'update:mode', value: 'compact' | 'preview' | 'full'): void
}>()
const supportsAvatar = hasTalkFeature('local', 'avatar')
const store = useStore()
const groupwareStore = useGroupwareStore()
@ -93,10 +96,19 @@ const sidebarTitle = computed(() => {
return conversation.value.displayName
})
const iconClass = computed(() => getFallbackIconClass(conversation.value, profileImageFailed.value))
const canRequestAvatar = computed(() => {
if (!supportsAvatar || conversation.value.isDummyConversation) {
return false
}
// Endpoint limited with #RequireParticipantOrLoggedInAndListedConversation
return !!conversation.value.actorId
})
const iconClass = computed(() => getFallbackIconClass(conversation.value, (profileImageFailed.value || !canRequestAvatar.value)))
const avatarUrl = computed(() => {
if (iconClass.value) {
if (iconClass.value || !canRequestAvatar.value) {
return undefined
}

Loading…
Cancel
Save