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