From 818afe9bbf436fd24d49c8fea53b282e2e1919df Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2026 15:41:41 -0500 Subject: [PATCH] Fix campaign card navigation when clicking inside verify dialog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The campaign card wraps its contents in a react-router . The moderation menu's VerificationDialog and CampaignListMembershipDialog portal their DOM out of the card, but React synthetic events still bubble through the component tree to the Link — so clicking anywhere in either dialog navigated to the campaign page. Wrap both dialogs in a span that stops click/pointerdown propagation, mirroring the guards already on the dropdown trigger and content. --- src/components/moderation/ModerationMenu.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/moderation/ModerationMenu.tsx b/src/components/moderation/ModerationMenu.tsx index ce9dc97e..21eaea9d 100644 --- a/src/components/moderation/ModerationMenu.tsx +++ b/src/components/moderation/ModerationMenu.tsx @@ -552,7 +552,14 @@ export function ModerationMenu({ className, ...rest }: ModerationMenuProps) { {rest.surface === 'campaign' && ( - <> + // The campaign card wraps everything in a . Radix dialogs portal + // their DOM out of the card, but React synthetic events still bubble + // through the component tree to the Link — so clicks inside the dialog + // would navigate to the campaign page. Stop propagation here. + e.stopPropagation()} + onPointerDown={(e) => e.stopPropagation()} + > - + )} );