diff --git a/packages/frontend/core/src/modules/explorer/views/tree/node.tsx b/packages/frontend/core/src/modules/explorer/views/tree/node.tsx index c4e5484aa4..6e79716e9a 100644 --- a/packages/frontend/core/src/modules/explorer/views/tree/node.tsx +++ b/packages/frontend/core/src/modules/explorer/views/tree/node.tsx @@ -302,13 +302,19 @@ export const ExplorerTreeNode = ({ [onRename] ); - const handleClick = useCallback(() => { - if (!clickForCollapse) { - onClick?.(); - } else { - setCollapsed(!collapsed); - } - }, [clickForCollapse, collapsed, onClick, setCollapsed]); + const handleClick = useCallback( + (e: React.MouseEvent) => { + if (e.defaultPrevented) { + return; + } + if (!clickForCollapse) { + onClick?.(); + } else { + setCollapsed(!collapsed); + } + }, + [clickForCollapse, collapsed, onClick, setCollapsed] + ); const content = (
))}
-
{name}
- {postfix} {mobile ? null : (
{ // prevent jump to page - e.stopPropagation(); e.preventDefault(); }} > diff --git a/packages/frontend/core/src/modules/workbench/view/workbench-link.tsx b/packages/frontend/core/src/modules/workbench/view/workbench-link.tsx index 79847a1a4c..429d42ae4c 100644 --- a/packages/frontend/core/src/modules/workbench/view/workbench-link.tsx +++ b/packages/frontend/core/src/modules/workbench/view/workbench-link.tsx @@ -1,4 +1,4 @@ -import { useCatchEventCallback } from '@affine/core/components/hooks/use-catch-event-hook'; +import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hooks'; import { isNewTabTrigger } from '@affine/core/utils'; import { FeatureFlagService, @@ -32,7 +32,7 @@ export const WorkbenchLink = forwardRef( const link = basename + (typeof to === 'string' ? to : `${to.pathname}${to.search}${to.hash}`); - const handleClick = useCatchEventCallback( + const handleClick = useAsyncCallback( async (event: React.MouseEvent) => { onClick?.(event); if (event.defaultPrevented) { @@ -48,6 +48,7 @@ export const WorkbenchLink = forwardRef( })(); workbench.open(to, { at, replaceHistory }); event.preventDefault(); + event.stopPropagation(); }, [enableMultiView, onClick, replaceHistory, to, workbench] );