From f8c876cc876889753141fc261f1fc02ddd15d207 Mon Sep 17 00:00:00 2001 From: yyh Date: Thu, 30 Apr 2026 13:27:41 +0800 Subject: [PATCH] fix --- web/app/components/workflow/block-selector/main.tsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/web/app/components/workflow/block-selector/main.tsx b/web/app/components/workflow/block-selector/main.tsx index 4131464fcf..a588fb660e 100644 --- a/web/app/components/workflow/block-selector/main.tsx +++ b/web/app/components/workflow/block-selector/main.tsx @@ -191,12 +191,14 @@ const NodeSelector: FC = ({ ) const triggerElement = trigger?.(open) + const shouldRenderTriggerElementAsRoot = React.isValidElement(triggerElement) + && (asChild || triggerElement.type === 'button') const triggerElementProps = React.isValidElement(triggerElement) ? (triggerElement.props as { onClick?: MouseEventHandler }) : null - const resolvedTriggerElement = asChild && React.isValidElement(triggerElement) + const resolvedTriggerElement = shouldRenderTriggerElementAsRoot ? React.cloneElement( triggerElement as React.ReactElement<{ onClick?: MouseEventHandler @@ -217,9 +219,8 @@ const NodeSelector: FC = ({ const resolvedOffset = typeof offset === 'number' || typeof offset === 'function' ? undefined : offset const sideOffset = typeof offset === 'number' ? offset : (resolvedOffset?.mainAxis ?? 0) const alignOffset = typeof offset === 'number' ? 0 : (resolvedOffset?.crossAxis ?? 0) - const nativeButton = asChild - ? React.isValidElement(triggerElement) && (typeof triggerElement.type !== 'string' || triggerElement.type === 'button') - : false + const nativeButton = shouldRenderTriggerElementAsRoot + && (typeof triggerElement.type !== 'string' || triggerElement.type === 'button') return (