E-Mail-Ansicht: Postfach-Filter in Trash/Sent durchreichen
Bug: Im Vertrags-Tab (Gesendet/Gelöscht) und im Kunden-Haupt-
Postfach (Gelöscht) wurden Mails aus ALLEN Postfächern angezeigt,
unabhängig vom ausgewählten Postfach. Im Vertrag fehlte zusätzlich
der Vertrags-Filter im Papierkorb.
Backend:
- getEmailsForContract akzeptiert accountId → stressfreiEmailId
- getTrashEmails (controller + service) nimmt {accountId, contractId}
- getFolderCountsForContract bekommt optional stressfreiEmailId und
zusätzlich trash/trashUnread im Result
Frontend:
- API-Client (getForContract/getTrash/getContractFolderCounts) nimmt
Filter entgegen
- ContractEmailsSection reicht selectedAccountId in alle drei Queries
+ queryKey durch. Trash-Badge kommt jetzt aus contract-scoped
Counts statt account-globalem stressfreiEmailApi
- EmailClientTab reicht selectedAccountId in die Trash-Query durch
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -124,11 +124,17 @@ export default function EmailClientTab({ customerId }: EmailClientTabProps) {
|
||||
|
||||
const emails = emailsData?.data || [];
|
||||
|
||||
// Papierkorb-E-Mails laden
|
||||
// Papierkorb-E-Mails laden – jetzt strikt pro Postfach.
|
||||
// Bug 2026-06-21: vorher kamen alle gelöschten E-Mails des Kunden
|
||||
// raus, egal welches Postfach selektiert war. selectedAccountId muss
|
||||
// in queryKey + queryFn, sonst greift React-Query-Cache bei Wechsel
|
||||
// nicht und der Folder-Count aus folderCountsData liefe auseinander.
|
||||
const { data: trashData, isLoading: trashLoading } = useQuery({
|
||||
queryKey: ['emails', 'trash', customerId],
|
||||
queryFn: () => cachedEmailApi.getTrash(customerId),
|
||||
enabled: selectedFolder === 'TRASH' && canAccessTrash,
|
||||
queryKey: ['emails', 'trash', customerId, selectedAccountId],
|
||||
queryFn: () => cachedEmailApi.getTrash(customerId, {
|
||||
accountId: selectedAccountId ?? undefined,
|
||||
}),
|
||||
enabled: selectedFolder === 'TRASH' && canAccessTrash && !!selectedAccountId,
|
||||
});
|
||||
|
||||
const trashEmails = trashData?.data || [];
|
||||
|
||||
Reference in New Issue
Block a user