onSearchChange('')}
className="shrink-0"
>
diff --git a/web/app/components/workflow/block-selector/main.tsx b/web/app/components/workflow/block-selector/main.tsx
index 335d329690..fde58fb844 100644
--- a/web/app/components/workflow/block-selector/main.tsx
+++ b/web/app/components/workflow/block-selector/main.tsx
@@ -17,6 +17,7 @@ import {
PopoverContent,
PopoverTrigger,
} from '@langgenius/dify-ui/popover'
+import { useDebounce } from 'ahooks'
import * as React from 'react'
import {
memo,
@@ -89,6 +90,7 @@ function NodeSelector({
const { t } = useTranslation()
const nodes = useNodes()
const [searchText, setSearchText] = useState('')
+ const debouncedSearchText = useDebounce(searchText, { wait: 500 })
const [tags, setTags] = useState
([])
const [localOpen, setLocalOpen] = useState(false)
// Exclude nodes explicitly ignored (such as the node currently being edited) when checking canvas state.
@@ -159,6 +161,9 @@ function NodeSelector({
const handleActiveTabChange = useCallback((newActiveTab: TabsEnum) => {
setActiveTab(newActiveTab)
}, [setActiveTab])
+ const filterSearchText = activeTab === TabsEnum.Start || activeTab === TabsEnum.Tools
+ ? debouncedSearchText
+ : searchText
const searchPlaceholder = useMemo(() => {
if (activeTab === TabsEnum.Start)
@@ -223,7 +228,7 @@ function NodeSelector({
alignOffset={alignOffset}
popupClassName="border-none bg-transparent shadow-none"
>
-
+
)}
{activeTab === TabsEnum.Blocks && (
@@ -273,13 +279,14 @@ function NodeSelector({
tags={tags}
onTagsChange={setTags}
placeholder={t('searchTools', { ns: 'plugin' })!}
- inputClassName="grow"
+ wrapperClassName="w-full min-w-0"
+ inputClassName="min-w-0 grow"
/>
)}
)}
onSelect={handleSelect}
- searchText={searchText}
+ searchText={filterSearchText}
tags={tags}
availableBlocksTypes={availableBlocksTypes}
noBlocks={noBlocks}
diff --git a/web/app/components/workflow/block-selector/tabs.tsx b/web/app/components/workflow/block-selector/tabs.tsx
index 11e7e5484d..5cdffcd40b 100644
--- a/web/app/components/workflow/block-selector/tabs.tsx
+++ b/web/app/components/workflow/block-selector/tabs.tsx
@@ -219,10 +219,10 @@ const Tabs: FC
= ({
}, [normalizedBuiltInTools, normalizedCustomTools, normalizedMcpTools, normalizedWorkflowTools, workflowStore])
return (
- e.stopPropagation()}>
+
e.stopPropagation()}>
{
!noBlocks && (
-