From 945702cbdd15bdaeaac5187223a4032c9ee61c45 Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Sat, 25 Jul 2026 07:57:33 +0200 Subject: [PATCH] Fix single image attachments in new drafts --- apps/web/src/composerDraftStore.test.ts | 12 ++++++++++++ apps/web/src/composerDraftStore.ts | 9 +-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/apps/web/src/composerDraftStore.test.ts b/apps/web/src/composerDraftStore.test.ts index bc1b7107306..8f8d36f6ff1 100644 --- a/apps/web/src/composerDraftStore.test.ts +++ b/apps/web/src/composerDraftStore.test.ts @@ -239,6 +239,18 @@ describe("composerDraftStore addImages", () => { expect(revokeSpy).toHaveBeenCalledWith("blob:b"); }); + it("adds one image to a new-thread draft before it has a server thread mapping", () => { + const draftId = DraftId.make("draft-single-image"); + const image = makeImage({ + id: "img-draft", + previewUrl: "blob:draft", + }); + + useComposerDraftStore.getState().addImage(draftId, image); + + expect(useComposerDraftStore.getState().getComposerDraft(draftId)?.images).toEqual([image]); + }); + it("does not revoke blob URLs that are still used by an accepted duplicate image", () => { const first = makeImage({ id: "img-shared", diff --git a/apps/web/src/composerDraftStore.ts b/apps/web/src/composerDraftStore.ts index da5d6aabff0..e2e59b1c7c7 100644 --- a/apps/web/src/composerDraftStore.ts +++ b/apps/web/src/composerDraftStore.ts @@ -2872,14 +2872,7 @@ const composerDraftStore = create()( }); }, addImage: (threadRef, image) => { - const threadKey = resolveComposerDraftKey(get(), threadRef); - const threadId = resolveComposerThreadId(get(), threadRef); - if (!threadKey || !threadId) { - return; - } - get().addImages(typeof threadRef === "string" ? DraftId.make(threadKey) : threadRef, [ - image, - ]); + get().addImages(threadRef, [image]); }, addImages: (threadRef, images) => { const threadKey = resolveComposerDraftKey(get(), threadRef) ?? "";