feat: message and attachment download

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-05-23 23:09:40 -04:00
parent cdff4d0d3f
commit b66ebbd078
4 changed files with 114 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ import { computed, ref, watch } from 'vue'
import { useUser } from '@KTXC'
import type { EntityObject, MessageObject } from '@MailManager/models'
import { SecurityLevel } from '@/utile/emailSanitizer'
import { useMailStore } from '@/stores/mailStore'
import ReaderEmpty from './reader/ReaderEmpty.vue'
import ReaderToolbar from './reader/ReaderToolbar.vue'
import ReaderHeader from './reader/ReaderHeader.vue'
@@ -25,6 +26,7 @@ const emit = defineEmits<{
// User settings
const { getSetting } = useUser()
const mailStore = useMailStore()
// Per-message overrides
const allowImages = ref(false)
@@ -94,6 +96,14 @@ const handleMove = () => {
}
}
const handleDownload = async (partIndex?: number) => {
if (!props.entity) {
return
}
await mailStore.downloadMessage(props.entity, partIndex)
}
const handleFlag = () => {
if (props.entity) {
emit('flag', props.entity)
@@ -125,13 +135,17 @@ const handleCompose = () => {
@move="handleMove"
@delete="handleDelete"
@flag="handleFlag"
@download="handleDownload()"
@toggle-images="toggleImages"
@set-security-level="setSecurityLevel"
/>
<!-- Message content -->
<div class="message-content">
<ReaderHeader :message="message!" />
<ReaderHeader
:entity="props.entity"
@download-attachment="handleDownload"
/>
<v-divider />