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]
);