authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-06 11:42:13-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-03-09 15:08:10-07:00
logb5dde6b9d865930bc2b981816dde3f614e892813
tree424b3ef2a07964cea2c972738223788b31c7a13b
parenta6b22ec1c9b247536111dd2c2e8682f9b3f550c5

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

1 files changed, 9 insertions(+), 1 deletions(-)

apps/web/src/components/Sidebar.tsx+9-1
...@@ -862,6 +862,7 @@ export default function Sidebar() {...@@ -862,6 +862,7 @@ export default function Sidebar() {
862862
863 const handleProjectDragCancel = useCallback((_event: DragCancelEvent) => {863 const handleProjectDragCancel = useCallback((_event: DragCancelEvent) => {
864 dragInProgressRef.current = false;864 dragInProgressRef.current = false;
865 suppressProjectClickAfterDragRef.current = false;
865 }, []);866 }, []);
866867
867 const handleProjectTitlePointerDownCapture = useCallback(() => {868 const handleProjectTitlePointerDownCapture = useCallback(() => {
...@@ -870,7 +871,14 @@ export default function Sidebar() {...@@ -870,7 +871,14 @@ export default function Sidebar() {
870871
871 const handleProjectTitleClick = useCallback(872 const handleProjectTitleClick = useCallback(
872 (event: React.MouseEvent<HTMLButtonElement>, projectId: ProjectId) => {873 (event: React.MouseEvent<HTMLButtonElement>, projectId: ProjectId) => {
873 if (dragInProgressRef.current || suppressProjectClickAfterDragRef.current) {874 if (dragInProgressRef.current) {
875 event.preventDefault();
876 event.stopPropagation();
877 return;
878 }
879 if (suppressProjectClickAfterDragRef.current) {
880 // Consume the synthetic click emitted after a drag release.
881 suppressProjectClickAfterDragRef.current = false;
874 event.preventDefault();882 event.preventDefault();
875 event.stopPropagation();883 event.stopPropagation();
876 return;884 return;