From ee1908e3b82d8575c5f7e604c4d31a2cb239adb0 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 6 May 2026 21:59:38 -0700 Subject: [PATCH] Refresh community caches after member updates --- src/components/AddMemberDialog.tsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/components/AddMemberDialog.tsx b/src/components/AddMemberDialog.tsx index e34df2fb..a967d6e0 100644 --- a/src/components/AddMemberDialog.tsx +++ b/src/components/AddMemberDialog.tsx @@ -279,12 +279,18 @@ export function AddMemberDialog({ updatedTags.push(['a', badgeATag, '', 'member']); } - await publishEvent({ + const updatedEvent = await publishEvent({ kind: COMMUNITY_DEFINITION_KIND, content: prev?.content ?? '', tags: updatedTags, prev: prev ?? undefined, } as Omit & { prev?: NostrEvent }); + + queryClient.setQueryData( + ['addr-event', COMMUNITY_DEFINITION_KIND, communityEvent.pubkey, community.dTag], + updatedEvent, + ); + queryClient.setQueryData(['event', updatedEvent.id], updatedEvent); } // Step 3: Publish badge awards for each member @@ -305,6 +311,9 @@ export function AddMemberDialog({ } applyOptimisticMembership(pendingMembers, memberAwardEvents); + queryClient.invalidateQueries({ queryKey: ['addr-event', COMMUNITY_DEFINITION_KIND, communityEvent.pubkey, community.dTag] }); + queryClient.invalidateQueries({ queryKey: ['community-members', community.aTag] }); + queryClient.invalidateQueries({ queryKey: ['community-activity-feed'], exact: false }); queryClient.invalidateQueries({ queryKey: ['my-communities'], exact: false }); if (!hasBadge && newMembers.length > 0) { queryClient.invalidateQueries({ queryKey: ['badge-feed'] });