From f42f57b8d09ee1323657fe72c08e9d8014cf9d6d Mon Sep 17 00:00:00 2001 From: Linus Rath Date: Thu, 9 Apr 2026 19:10:34 +0200 Subject: [PATCH] fix: preserve search filters on push-triggered mailbox refresh #164 --- stores/email-store.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/stores/email-store.ts b/stores/email-store.ts index db01b5be..42630eac 100644 --- a/stores/email-store.ts +++ b/stores/email-store.ts @@ -1241,7 +1241,18 @@ export const useEmailStore = create((set, get) => ({ // Get emails per page from settings const emailsPerPage = useSettingsStore.getState().emailsPerPage; - const result = await client.getEmails(jmapMailboxId, accountId, emailsPerPage, 0); + // Respect active search filters / query so that a push-triggered refresh + // does not silently replace a filtered list with an unfiltered one. + const { searchQuery, searchFilters } = get(); + const hasFilters = !isFilterEmpty(searchFilters); + + let result; + if (hasFilters || searchQuery) { + const filter = buildJMAPFilter(searchQuery, searchFilters, jmapMailboxId); + result = await client.advancedSearchEmails(filter, accountId, emailsPerPage, 0); + } else { + result = await client.getEmails(jmapMailboxId, accountId, emailsPerPage, 0); + } const currentEmails = get().emails;