From 7a06ab03c02a4dffb2adeca254b189d59451ff6c Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Sat, 31 Oct 2026 17:19:34 +0100 Subject: [PATCH] fix: list a signed message's attachments once in the reader #58 --- src/components/email/MessageContent.tsx | 4 +++- src/lib/__tests__/compose-secure-wiring.test.ts | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/email/MessageContent.tsx b/src/components/email/MessageContent.tsx index 5b23fe44..17318918 100644 --- a/src/components/email/MessageContent.tsx +++ b/src/components/email/MessageContent.tsx @@ -76,8 +76,10 @@ export function MessageContent({ ? secure.result.body ?? (secure.result.status.encrypted ? { html: null, text: '' } : null) : null; const bodyOverride = secureBody ?? unwrap.override; + // Only an encrypted message hides its attachments from the server; a + // signed one has them listed already. const extracted = React.useMemo( - () => (secure.result?.attachments.length ? [...secure.result.attachments, ...unwrap.extracted] : unwrap.extracted), + () => (secure.result?.status.encrypted && secure.result.attachments.length ? [...secure.result.attachments, ...unwrap.extracted] : unwrap.extracted), [secure.result, unwrap.extracted], ); const calendarBannerShown = calendarBannerShownFor(email, calendarParsing); diff --git a/src/lib/__tests__/compose-secure-wiring.test.ts b/src/lib/__tests__/compose-secure-wiring.test.ts index d6c7259b..997e02cd 100644 --- a/src/lib/__tests__/compose-secure-wiring.test.ts +++ b/src/lib/__tests__/compose-secure-wiring.test.ts @@ -31,5 +31,7 @@ describe('reader wiring', () => { expect(reader).toMatch(/const secure = useSecureMessage\(email, jmapAccountId\);/); expect(reader).toMatch(/bodyOverride=\{bodyOverride\}/); expect(reader).toMatch(/