feat: recipient details

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-05-22 11:56:29 -04:00
parent 897a03578e
commit f1d0511cbb
8 changed files with 297 additions and 44 deletions

View File

@@ -3,9 +3,11 @@ import { defineStore } from 'pinia'
import { useCollectionsStore } from '@MailManager/stores/collectionsStore'
import { useMailStore } from '@/stores/mailStore'
import { useMailSettingsStore } from '@/stores/mailSettingsStore'
import { ComposerMode } from '@/types/composer'
import type { ServiceIdentifier, EntityIdentifier } from '@MailManager/types/common'
import { EntityObject, type ServiceObject } from '@MailManager/models'
import type { CollectionObject } from '@MailManager/models/collection'
import type { MessageAddressInterface } from '@MailManager/types/message'
export const useMailUiStore = defineStore('mailUiStore', () => {
const collectionsStore = useCollectionsStore()
@@ -16,9 +18,9 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
const settingsDialogVisible = ref(false)
const selectedFolder = shallowRef<CollectionObject | null>(null)
const selectedMessage = shallowRef<EntityObject | null>(null)
const composeMode = ref<'new' | 'reply' | 'forward'>('new')
const composeSource = shallowRef<EntityObject | null>(null)
const composeVisible = ref(false)
const composerMode = ref<ComposerMode>(ComposerMode.Fresh)
const composerSource = shallowRef<EntityObject | MessageAddressInterface | null>(null)
const composerVisible = ref(false)
const selectionMode = ref(false)
const selectionList = ref<EntityIdentifier[]>([])
const moveMessagesDialogVisible = ref(false)
@@ -96,7 +98,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
() => mailStore.selectedMessage,
message => {
if (message) {
closeCompose()
closeComposer()
}
selectMessage(message)
@@ -149,7 +151,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
async function selectFolder(folder: CollectionObject | null) {
closeCompose()
closeComposer()
messageSelectionModeDeactivate()
clearMessageReadTimer()
selectedMessage.value = null
@@ -158,7 +160,6 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
async function selectMessage(message: EntityObject | null) {
closeCompose()
messageSelectionModeDeactivate()
createMessageReadTimer(message)
selectedMessage.value = message
@@ -450,17 +451,17 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
selectionList.value = Array.from(new Set(nextIds))
}
function openCompose(source?: EntityObject, mode: 'reply' | 'forward' = 'reply') {
function openComposer(source?: EntityObject | MessageAddressInterface, mode: ComposerMode = ComposerMode.Fresh) {
mailStore.selectMessage(null)
composeSource.value = source ?? null
composeMode.value = mode
composeVisible.value = true
composerSource.value = source ?? null
composerMode.value = mode
composerVisible.value = true
}
function closeCompose() {
composeMode.value = 'new'
composeSource.value = null
composeVisible.value = false
function closeComposer() {
composerMode.value = ComposerMode.Fresh
composerSource.value = null
composerVisible.value = false
}
function messageSelectionClear() {
@@ -575,9 +576,9 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
settingsDialogVisible,
selectedFolder,
selectedMessage,
composeMode,
composeSource,
composeVisible,
composerMode,
composerSource,
composerVisible,
selectionMode,
selectionList,
moveMessagesDialogVisible,
@@ -610,8 +611,8 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
settingsClose,
initialize,
selectFolder,
openCompose,
closeCompose,
openComposer,
closeComposer,
messageSelectionModeActivate,
messageSelectionModeDeactivate,
messageSelectionToggleOne,