feat: implement standardized protocol

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-02-14 11:46:50 -05:00
parent 2a251f9b3f
commit 3599bea4c5
7 changed files with 28 additions and 39 deletions

View File

@@ -56,10 +56,10 @@ onMounted(async () => {
await servicesStore.list()
// Load collections (folders)
await collectionsStore.loadCollections()
await collectionsStore.list()
// Select inbox by default if available
const inbox = collectionsStore.collectionList.find(c => c.properties.role === 'inbox')
const inbox = collectionsStore.collections.find(c => c.properties.role === 'inbox')
if (inbox) {
handleFolderSelect(inbox)
}
@@ -91,7 +91,7 @@ watch(
// Add inbox for each service to get notifications
servicesStore.services.forEach(service => {
// Find inbox collection for this service
const inboxes = collectionsStore.collectionList.filter(
const inboxes = collectionsStore.collections.filter(
c => c.service === service.identifier &&
(c.properties.role === 'inbox' ||
String(c.identifier).toLowerCase() === 'inbox')
@@ -100,7 +100,7 @@ watch(
if (inboxes.length > 0) {
mailSync.addSource({
provider: service.provider,
service: service.identifier,
service: service.identifier as string | number,
collections: inboxes.map(inbox => inbox.identifier),
})
}
@@ -122,7 +122,7 @@ const handleFolderSelect = async (folder: CollectionObject) => {
// Load messages for this folder
try {
await entitiesStore.loadMessages({
await entitiesStore.list({
[folder.provider]: {
[folder.service]: {
[folder.identifier]: true
@@ -188,19 +188,18 @@ const handleFolderCreated = (folder: CollectionObject) => {
snackbarVisible.value = true
// Reload collections to ensure UI is in sync
collectionsStore.loadCollections()
collectionsStore.list()
}
// Messages for current folder
const currentMessages = computed(() => {
if (!selectedFolder.value) return []
const provider = selectedFolder.value.provider
const service = String(selectedFolder.value.service)
const collection = String(selectedFolder.value.identifier)
const messages = entitiesStore.messages[provider]?.[service]?.[collection]
return messages ? Object.values(messages) : []
return entitiesStore.entitiesForCollection(
selectedFolder.value.provider,
selectedFolder.value.service,
selectedFolder.value.identifier
)
})
</script>
@@ -230,7 +229,7 @@ const currentMessages = computed(() => {
<v-btn
icon="mdi-refresh"
@click="mailSync.sync()"
:loading="mailSync.isRunning.value && entitiesStore.loading"
:loading="mailSync.isRunning.value && entitiesStore.transceiving"
variant="text"
>
<v-icon>mdi-refresh</v-icon>