From b5dde6b9d865930bc2b981816dde3f614e892813 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Fri, 6 Mar 2026 11:42:13 -0800 Subject: [PATCH] Prevent stale click suppression after project drag cancel - Reset post-drag click suppression when drag is canceled - Consume only the synthetic click after drag release, then clear suppression --- apps/web/src/components/Sidebar.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/Sidebar.tsx b/apps/web/src/components/Sidebar.tsx index 914480d077430c24ac459cdc365141176bfd068f..dd7171e4aba9530e56633dd3a626c1648cf8a553 100644 --- a/apps/web/src/components/Sidebar.tsx +++ b/apps/web/src/components/Sidebar.tsx @@ -862,6 +862,7 @@ export default function Sidebar() { const handleProjectDragCancel = useCallback((_event: DragCancelEvent) => { dragInProgressRef.current = false; + suppressProjectClickAfterDragRef.current = false; }, []); const handleProjectTitlePointerDownCapture = useCallback(() => { @@ -870,7 +871,14 @@ export default function Sidebar() { const handleProjectTitleClick = useCallback( (event: React.MouseEvent, projectId: ProjectId) => { - if (dragInProgressRef.current || suppressProjectClickAfterDragRef.current) { + if (dragInProgressRef.current) { + event.preventDefault(); + event.stopPropagation(); + return; + } + if (suppressProjectClickAfterDragRef.current) { + // Consume the synthetic click emitted after a drag release. + suppressProjectClickAfterDragRef.current = false; event.preventDefault(); event.stopPropagation(); return; -- 2.54.0