refactor: rename mailStore to mailOperationsStore

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-06-20 15:41:47 -04:00
parent 27816efb0c
commit 75ff60a04d
6 changed files with 46 additions and 56 deletions
+5 -5
View File
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue'
import { useMailStore } from '@/stores/mailStore'
import { useMailOperationsStore } from '@/stores/mailOperationsStore'
import { useCollectionsStore } from '@MailManager/stores/collectionsStore'
import type { ServiceObject, CollectionObject } from '@MailManager/models'
import FolderSelectionTreeNode from './FolderSelectionTreeNode.vue'
@@ -30,7 +30,7 @@ const emit = defineEmits<{
cancel: []
}>()
const mailStore = useMailStore()
const mailOperationsStore = useMailOperationsStore()
const collectionsStore = useCollectionsStore()
const selectedFolderKey = ref<string | null>(null)
@@ -59,9 +59,9 @@ const serviceGroups = computed<ServiceGroup[]>(() => {
return [{
service,
loading: mailStore.isServiceFolderLoading(service.provider, service.identifier),
loaded: mailStore.hasServiceFoldersLoaded(service.provider, service.identifier),
error: mailStore.getServiceFolderError(service.provider, service.identifier),
loading: mailOperationsStore.isServiceFolderLoading(service.provider, service.identifier),
loaded: mailOperationsStore.hasServiceFoldersLoaded(service.provider, service.identifier),
error: mailOperationsStore.getServiceFolderError(service.provider, service.identifier),
}]
})
+5 -5
View File
@@ -2,7 +2,7 @@
import { computed } from 'vue'
import { storeToRefs } from 'pinia'
import { useServicesStore } from '@MailManager/stores/servicesStore'
import { useMailStore } from '@/stores/mailStore'
import { useMailOperationsStore } from '@/stores/mailOperationsStore'
import { useMailSettingsStore } from '@/stores/mailSettingsStore'
import { useMailUiStore } from '@/stores/mailUiStore'
import FolderTreeView from './FolderTreeView.vue'
@@ -28,7 +28,7 @@ const emit = defineEmits<{
// Stores
const servicesStore = useServicesStore()
const mailStore = useMailStore()
const mailOperationsStore = useMailOperationsStore()
const mailUiStore = useMailUiStore()
const mailSettingsStore = useMailSettingsStore()
const { folderViewMode } = storeToRefs(mailSettingsStore)
@@ -43,9 +43,9 @@ const serviceGroups = computed(() => {
groups.push({
service,
loading: mailStore.isServiceFolderLoading(service.provider, service.identifier),
loaded: mailStore.hasServiceFoldersLoaded(service.provider, service.identifier),
error: mailStore.getServiceFolderError(service.provider, service.identifier),
loading: mailOperationsStore.isServiceFolderLoading(service.provider, service.identifier),
loaded: mailOperationsStore.hasServiceFoldersLoaded(service.provider, service.identifier),
error: mailOperationsStore.getServiceFolderError(service.provider, service.identifier),
})
})
+3 -3
View File
@@ -9,7 +9,7 @@ import TextAlign from '@tiptap/extension-text-align'
import Placeholder from '@tiptap/extension-placeholder'
import { EntityObject } from '@MailManager/models/entity'
import type { CollectionObject, MessageAddressObject } from '@MailManager/models'
import { useMailStore } from '@/stores/mailStore'
import { useMailOperationsStore } from '@/stores/mailOperationsStore'
import { useMailCompositionStore } from '@/stores/mailCompositionStore'
import { ComposerMode } from '@/types/composer'
import ComposerToolbar from '@/components/composer/ComposerToolbar.vue'
@@ -32,11 +32,11 @@ const emit = defineEmits<{
close: []
}>()
const mailStore = useMailStore()
const mailOperationsStore = useMailOperationsStore()
const compositionStore = useMailCompositionStore()
const {
composerSending: sending,
} = storeToRefs(mailStore)
} = storeToRefs(mailOperationsStore)
const {
activeDraft,
+5 -5
View File
@@ -4,7 +4,7 @@ import { storeToRefs } from 'pinia'
import { useDisplay } from 'vuetify'
import { useModuleStore } from '@KTXC'
import { useCollectionsStore } from '@MailManager/stores/collectionsStore'
import { useMailStore } from '@/stores/mailStore'
import { useMailOperationsStore } from '@/stores/mailOperationsStore'
import { useMailUiStore } from '@/stores/mailUiStore'
import type { CollectionObject, EntityObject } from '@MailManager/models'
import { ComposerMode } from '@/types/composer'
@@ -30,7 +30,7 @@ const isManagerAvailable = computed(() => {
const collectionsStore = useCollectionsStore()
// Mail module store
const mailStore = useMailStore()
const mailOperationsStore = useMailOperationsStore()
const mailUiStore = useMailUiStore()
// storeToRefs preserves reactivity for state and computed properties
@@ -38,7 +38,7 @@ const {
loading,
selectedMessage,
currentMessages,
} = storeToRefs(mailStore)
} = storeToRefs(mailOperationsStore)
const {
sidebarVisible,
@@ -70,7 +70,7 @@ const {
} = storeToRefs(mailUiStore)
// Complex store/composable objects accessed directly (not simple refs)
const { mailSync, entitiesStore } = mailStore
const { mailSync, entitiesStore } = mailOperationsStore
const lastSyncLabel = computed(() => {
const lastSync = unref(unref(mailSync.lastSync))
@@ -141,7 +141,7 @@ const handleFolderMoveCancel = () => mailUiStore.closeMoveFolderDialog()
const handleMessageOpen = (message: EntityObject) => {
mailStore.selectMessage(message)
mailOperationsStore.selectMessage(message)
if (isMobile.value) {
mailUiStore.sidebarHide()
@@ -21,7 +21,7 @@ interface ComposerMessageInput {
}
}
export const useMailStore = defineStore('mailStore', () => {
export const useMailOperationsStore = defineStore('mailOperationsStore', () => {
const servicesStore = useServicesStore()
const collectionsStore = useCollectionsStore()
const entitiesStore = useEntitiesStore()
@@ -156,11 +156,7 @@ export const useMailStore = defineStore('mailStore', () => {
// Track the currently selected folder
if (selectedFolder.value) {
//mailSyncController.addSource({
// provider: selectedFolder.value.provider,
// service: selectedFolder.value.service,
// collections: [selectedFolder.value.identifier],
//})
mailSyncController.addSource(selectedFolder.value.identifier)
}
// Always track inboxes for each account (for new-mail notifications)
@@ -175,13 +171,7 @@ export const useMailStore = defineStore('mailStore', () => {
String(c.identifier).toLowerCase() === 'inbox'),
)
if (inboxes.length > 0) {
//mailSyncController.addSource({
// provider: service.provider,
// service: service.identifier as string | number,
// collections: inboxes.map(inbox => inbox.identifier),
//})
}
inboxes.forEach(inbox => mailSyncController.addSource(inbox.identifier))
})
if (mailSyncController.sources.value.length > 0 && !mailSyncController.isRunning.value) {
+25 -25
View File
@@ -1,7 +1,7 @@
import { computed, ref, shallowRef, watch } from 'vue'
import { defineStore } from 'pinia'
import { useCollectionsStore } from '@MailManager/stores/collectionsStore'
import { useMailStore } from '@/stores/mailStore'
import { useMailOperationsStore } from '@/stores/mailOperationsStore'
import { useMailSettingsStore } from '@/stores/mailSettingsStore'
import { ComposerMode } from '@/types/composer'
import type { ServiceIdentifier, EntityIdentifier } from '@MailManager/types/common'
@@ -13,7 +13,7 @@ import { useSnackbar } from '@KTXC'
export const useMailUiStore = defineStore('mailUiStore', () => {
const collectionsStore = useCollectionsStore()
const mailStore = useMailStore()
const mailOperationsStore = useMailOperationsStore()
const mailSettingsStore = useMailSettingsStore()
const { showSnackbar } = useSnackbar()
@@ -98,7 +98,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
})
watch(
() => mailStore.selectedMessage,
() => mailOperationsStore.selectedMessage,
message => {
if (message) {
closeComposer()
@@ -109,17 +109,17 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
)
watch(
() => mailStore.currentMessages,
() => mailOperationsStore.currentMessages,
() => {
messageSelectionReconcile()
},
)
async function initialize() {
await mailStore.initialize()
await mailOperationsStore.initialize()
if (!selectedFolder.value) {
const inbox = mailStore.findFoldersByRole('inbox')[0] ?? null
const inbox = mailOperationsStore.findFoldersByRole('inbox')[0] ?? null
if (inbox) {
await selectFolder(inbox)
@@ -205,7 +205,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
clearMessageReadTimer()
selectedMessage.value = null
selectedFolder.value = folder
await mailStore.selectFolder(folder)
await mailOperationsStore.selectFolder(folder)
}
async function selectMessage(message: EntityObject | null) {
@@ -285,7 +285,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
createFolderDialogError.value = ''
try {
const folder = await mailStore.createFolder(service, label, createFolderDialogParent.value)
const folder = await mailOperationsStore.createFolder(service, label, createFolderDialogParent.value)
notify(`Folder "${folder.properties.label || label.trim()}" created`, 'success')
closeCreateFolderDialog()
return folder
@@ -298,7 +298,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
async function openRenameFolderDialog(target: CollectionObject) {
const service = await mailStore.retrieveService(target.service)
const service = await mailOperationsStore.retrieveService(target.service)
renameFolderDialogService.value = service
renameFolderDialogFolder.value = target
renameFolderDialogError.value = ''
@@ -325,7 +325,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
renameFolderDialogError.value = ''
try {
const updatedFolder = await mailStore.renameFolder(folder, label)
const updatedFolder = await mailOperationsStore.renameFolder(folder, label)
if (_sameCollection(selectedFolder.value, folder)) {
selectedFolder.value = updatedFolder
@@ -347,7 +347,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
async function openMoveFolderDialog(source: CollectionObject) {
const service = await mailStore.retrieveService(source.service)
const service = await mailOperationsStore.retrieveService(source.service)
moveFolderDialogService.value = service
moveFolderDialogSource.value = source
moveFolderDialogVisible.value = true
@@ -366,7 +366,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
return null
}
const movedFolder = await mailStore.moveFolder(source, target)
const movedFolder = await mailOperationsStore.moveFolder(source, target)
if (_sameCollection(selectedFolder.value, source)) {
selectedFolder.value = movedFolder
@@ -382,7 +382,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
async function openDeleteFolderDialog(target: CollectionObject) {
const service = await mailStore.retrieveService(target.service)
const service = await mailOperationsStore.retrieveService(target.service)
deleteFolderDialogService.value = service
deleteFolderDialogFolder.value = target
deleteFolderDialogError.value = ''
@@ -409,7 +409,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
deleteFolderDialogError.value = ''
try {
const deleted = await mailStore.deleteFolder(folder)
const deleted = await mailOperationsStore.deleteFolder(folder)
if (_sameCollection(selectedFolder.value, folder)) {
selectFolder(null)
@@ -513,7 +513,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
function openComposer(source?: EntityObject | MessageAddressInterface, mode: ComposerMode = ComposerMode.Fresh) {
mailStore.selectMessage(null)
mailOperationsStore.selectMessage(null)
composerSource.value = source ?? null
composerMode.value = mode
composerVisible.value = true
@@ -564,7 +564,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
function messageSelectionToggleAll(value: boolean) {
selectionMode.value = true
if (value) {
setSelectionList(mailStore.currentMessages.map(message => message.identifier))
setSelectionList(mailOperationsStore.currentMessages.map(message => message.identifier))
} else {
setSelectionList([])
}
@@ -576,7 +576,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
return
}
const currentMessageIdentifiers = new Set(mailStore.currentMessages.map(message => message.identifier))
const currentMessageIdentifiers = new Set(mailOperationsStore.currentMessages.map(message => message.identifier))
const nextSelectedIds = selectionList.value.filter(identifier => currentMessageIdentifiers.has(identifier))
if (nextSelectedIds.length !== selectionList.value.length) {
@@ -606,7 +606,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
moveMessagesServiceIdentifier = selectedFolder.value?.service as ServiceIdentifier || null
}
moveMessagesDialogService.value = await mailStore.retrieveService(moveMessagesServiceIdentifier)
moveMessagesDialogService.value = await mailOperationsStore.retrieveService(moveMessagesServiceIdentifier)
moveMessagesDialogVisible.value = true
}
@@ -616,7 +616,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
moveMessagesDialogCandidates.value = null
}
async function confirmMoveMessages(targetIdentifier: Parameters<typeof mailStore.moveMessages>[0]) {
async function confirmMoveMessages(targetIdentifier: Parameters<typeof mailOperationsStore.moveMessages>[0]) {
await moveMessages(targetIdentifier, moveMessagesDialogCandidates.value ?? [])
messageSelectionModeDeactivate()
closeMoveMessagesDialog()
@@ -634,7 +634,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
async function deleteMessages(entityIdentifiers: EntityIdentifier[]) {
try {
const result = await mailStore.deleteMessages(entityIdentifiers)
const result = await mailOperationsStore.deleteMessages(entityIdentifiers)
if (!result) {
return null
@@ -655,7 +655,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
options: { notify?: boolean } = {},
) {
try {
const result = await mailStore.flagMessages(entityIdentifiers, flags)
const result = await mailOperationsStore.flagMessages(entityIdentifiers, flags)
if (!result) {
return null
@@ -681,7 +681,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
async function moveMessages(target: CollectionObject, entityIdentifiers: EntityIdentifier[]) {
try {
const result = await mailStore.moveMessages(target, entityIdentifiers)
const result = await mailOperationsStore.moveMessages(target, entityIdentifiers)
if (!result) {
return null
@@ -698,7 +698,7 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
async function downloadMessage(entity: EntityObject, index?: number) {
try {
await mailStore.downloadMessage(entity, index)
await mailOperationsStore.downloadMessage(entity, index)
} catch (error) {
const messageText = error instanceof Error
? error.message
@@ -710,8 +710,8 @@ export const useMailUiStore = defineStore('mailUiStore', () => {
}
}
function attachmentBlob(entity: EntityObject, part: Parameters<typeof mailStore.attachmentBlob>[1]) {
return mailStore.attachmentBlob(entity, part)
function attachmentBlob(entity: EntityObject, part: Parameters<typeof mailOperationsStore.attachmentBlob>[1]) {
return mailOperationsStore.attachmentBlob(entity, part)
}
return {