feat(preview): disable attachment previews when unavailable

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-08-31 22:40:41 -04:00
parent da1e8e52b0
commit 9508106d4f
2 changed files with 8 additions and 3 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue'
import { useUser } from '@KTXC'
import { usePreviewStore, useUser } from '@KTXC'
import { useMailUiStore } from '@/stores/mailUiStore'
import type { EntityObject, MessageObject } from '@MailManager/models'
import { SecurityLevel } from '@/utile/emailSanitizer'
@@ -29,6 +29,7 @@ const emit = defineEmits<{
// User settings
const { getSetting } = useUser()
const previewStore = usePreviewStore()
const mailUiStore = useMailUiStore()
// Security overrides
@@ -65,6 +66,7 @@ const effectiveSecurityLevel = computed(() => {
// Preview state
const previewDialog = computed(() => mediaViewerComponent('dialog'))
const previewItems = computed<MediaViewerItem[]>(() => {
if (!previewStore.availability.storage) return []
const attachments = message.value?.attachments ?? []
const items: MediaViewerItem[] = []
attachments.forEach((attachment, index) => {
+5 -2
View File
@@ -1,5 +1,6 @@
<script setup lang="ts">
import { computed } from 'vue'
import { usePreviewStore } from '@KTXC'
import RecipientDetails from '@/components/common/RecipientDetails.vue'
import { formatFileSize } from '@/utile/format'
import { mediaViewerCanDisplay, mediaViewerComponent } from '@/services/mediaViewer'
@@ -27,7 +28,9 @@ const emit = defineEmits<{
}>()
const mailUiStore = useMailUiStore()
const previewPopover = computed(() => mediaViewerComponent('popover'))
const previewStore = usePreviewStore()
const previewsAvailable = computed(() => previewStore.availability.storage)
const previewPopover = computed(() => previewsAvailable.value ? mediaViewerComponent('popover') : null)
const message = computed(() => {
return props.entity?.properties ?? null
@@ -48,7 +51,7 @@ const attachmentItems = computed<AttachmentItem[]>(() =>
)
const isPreviewable = (attachment: MessagePartInterface): boolean => {
return mediaViewerCanDisplay(attachment.type)
return previewsAvailable.value && mediaViewerCanDisplay(attachment.type)
}
const handleAttachmentClick = (attachment: MessagePartInterface, index: number): void => {