From e7ecdb01a641be25ec10f3cabb2340b691e30b91 Mon Sep 17 00:00:00 2001 From: StyleZhang Date: Fri, 23 Feb 2024 15:19:31 +0800 Subject: [PATCH] block-selector --- .../workflow/block-selector/index.tsx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/web/app/components/workflow/block-selector/index.tsx b/web/app/components/workflow/block-selector/index.tsx index af45f31b5a..6056924aea 100644 --- a/web/app/components/workflow/block-selector/index.tsx +++ b/web/app/components/workflow/block-selector/index.tsx @@ -1,6 +1,10 @@ -import type { FC } from 'react' +import type { + FC, + MouseEventHandler, +} from 'react' import { memo, + useCallback, useState, } from 'react' import type { @@ -25,6 +29,7 @@ type NodeSelectorProps = { placement?: Placement offset?: OffsetOptions triggerStyle?: React.CSSProperties + triggerClassName?: string popupClassName?: string asChild?: boolean } @@ -33,11 +38,17 @@ const NodeSelector: FC = ({ trigger, placement = 'right', offset = 6, + triggerClassName, triggerStyle, popupClassName, asChild, }) => { const [open, setOpen] = useState(false) + const handleTrigger = useCallback>((e) => { + e.stopPropagation() + setOpen(v => !v) + }, []) + return ( = ({ open={open} onOpenChange={setOpen} > - setOpen(v => !v)}> + { trigger ? trigger(open) @@ -54,6 +68,7 @@ const NodeSelector: FC = ({ className={` flex items-center justify-center w-4 h-4 rounded-full bg-primary-600 cursor-pointer z-10 group-hover:flex + ${triggerClassName} `} style={triggerStyle} >