| ... | @@ -862,6 +862,7 @@ export default function Sidebar() { | ... | @@ -862,6 +862,7 @@ export default function Sidebar() { |
| 862 | | 862 | |
| 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 | }, []); |
| 866 | | 867 | |
| 867 | const handleProjectTitlePointerDownCapture = useCallback(() => { | 868 | const handleProjectTitlePointerDownCapture = useCallback(() => { |
| ... | @@ -870,7 +871,14 @@ export default function Sidebar() { | ... | @@ -870,7 +871,14 @@ export default function Sidebar() { |
| 870 | | 871 | |
| 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; |