Skip to content

Commit 2da9629

Browse files
committed
fix(desktop): preserve audience revision snapshot
Signed-off-by: Brian Charbonneau <github@briancharbonneau.com>
1 parent 683b826 commit 2da9629

2 files changed

Lines changed: 18 additions & 13 deletions

File tree

desktop/src/features/messages/ui/MessageComposer.tsx

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,7 @@ import { useAttachmentEditing } from "@/features/messages/lib/useAttachmentEditi
2424
import { useMediaUpload } from "@/features/messages/lib/useMediaUpload";
2525
import { useMentions } from "@/features/messages/lib/useMentions";
2626
import { diffAddedMentionPubkeys } from "@/features/messages/lib/threading";
27-
import {
28-
getPersistentAgentAudienceRevision,
29-
getPersistentAgentAudienceScope,
30-
} from "@/features/messages/lib/persistentAgentAudience";
27+
import { getPersistentAgentAudienceScope } from "@/features/messages/lib/persistentAgentAudience";
3128
import { useIdentityQuery } from "@/shared/api/hooks";
3229
import {
3330
hasMentionClipboardHtml,
@@ -292,7 +289,8 @@ function MessageComposerImpl({
292289
persistentMentionHydration,
293290
);
294291
persistentMentionHydrationRef.current = persistentMentionHydration;
295-
const { beginSubmit, endSubmit } = persistentMentionHydration;
292+
const { beginSubmit, endSubmit, getAudienceRevision } =
293+
persistentMentionHydration;
296294
const {
297295
audienceChips,
298296
composerAudienceHint,
@@ -616,12 +614,7 @@ function MessageComposerImpl({
616614
spoileredAttachmentUrls,
617615
trimmed,
618616
audienceGeneration,
619-
// Snapshot the store revision at submit time. A chip removal may have
620-
// happened in the current event turn, before React re-renders this
621-
// composer; a later removal still advances the revision and wins.
622-
audienceRevision: audienceScope
623-
? getPersistentAgentAudienceRevision(audienceScope)
624-
: null,
617+
audienceRevision: getAudienceRevision(),
625618
});
626619
} finally {
627620
endSubmit();
@@ -645,10 +638,10 @@ function MessageComposerImpl({
645638
syncComposerContentFromEditor,
646639
onCaptureSendContext,
647640
onPreparingMentionSendChange,
648-
audienceScope,
649641
audienceGeneration,
650642
beginSubmit,
651643
endSubmit,
644+
getAudienceRevision,
652645
]);
653646
submitMessageRef.current = submitMessage;
654647

desktop/src/features/messages/ui/usePersistentAgentMentionHydration.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
import * as React from "react";
22

33
import { getMentionOffset } from "@/features/messages/lib/hasMention";
4-
import { usePersistentAgentAudience } from "@/features/messages/lib/persistentAgentAudience";
4+
import {
5+
getPersistentAgentAudienceRevision,
6+
usePersistentAgentAudience,
7+
} from "@/features/messages/lib/persistentAgentAudience";
58
import type { UseMentionsResult } from "@/features/messages/lib/useMentions";
69
import type { UseRichTextEditorResult } from "@/features/messages/lib/useRichTextEditor";
710
import { truncatePubkey } from "@/shared/lib/pubkey";
@@ -328,10 +331,19 @@ export function usePersistentAgentMentionHydration({
328331
scheduleHydration(true);
329332
}, [scheduleHydration]);
330333

334+
const getAudienceRevision = React.useCallback(
335+
() =>
336+
scopeRef.current
337+
? getPersistentAgentAudienceRevision(scopeRef.current)
338+
: null,
339+
[],
340+
);
341+
331342
return {
332343
audience,
333344
beginSubmit,
334345
endSubmit,
346+
getAudienceRevision,
335347
reconcile,
336348
removeMentionToken,
337349
resolvePostSendContent,

0 commit comments

Comments
 (0)