diff --git a/web/app/components/base/icons/assets/vender/solid/general/arrow-down-round-fill.svg b/web/app/components/base/icons/assets/vender/solid/general/arrow-down-round-fill.svg
index d654264b5d..9566fcc0c3 100644
--- a/web/app/components/base/icons/assets/vender/solid/general/arrow-down-round-fill.svg
+++ b/web/app/components/base/icons/assets/vender/solid/general/arrow-down-round-fill.svg
@@ -1,5 +1,5 @@
diff --git a/web/app/components/base/icons/src/vender/solid/general/ArrowDownRoundFill.json b/web/app/components/base/icons/src/vender/solid/general/ArrowDownRoundFill.json
index b56fb09888..4e7da3c801 100644
--- a/web/app/components/base/icons/src/vender/solid/general/ArrowDownRoundFill.json
+++ b/web/app/components/base/icons/src/vender/solid/general/ArrowDownRoundFill.json
@@ -24,8 +24,7 @@
"attributes": {
"id": "Vector",
"d": "M6.02913 6.23572C5.08582 6.23572 4.56482 7.33027 5.15967 8.06239L7.13093 10.4885C7.57922 11.0403 8.42149 11.0403 8.86986 10.4885L10.8411 8.06239C11.4359 7.33027 10.9149 6.23572 9.97158 6.23572H6.02913Z",
- "fill": "currentColor",
- "fill-opacity": "0.3"
+ "fill": "currentColor"
},
"children": []
}
diff --git a/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx b/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx
index 28001bef5e..c5af4ed8a1 100644
--- a/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx
+++ b/web/app/components/header/account-setting/model-provider-page/model-modal/Form.tsx
@@ -376,6 +376,7 @@ function Form<
tooltip={tooltip?.[language] || tooltip?.en_US}
value={value[variable] || []}
onChange={item => handleFormChange(variable, item as any)}
+ supportCollapse
/>
{fieldMoreInfo?.(formSchema)}
{validating && changeKey === variable && }
diff --git a/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx b/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx
index fc29feaefc..f243d30aff 100644
--- a/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx
+++ b/web/app/components/plugins/plugin-detail-panel/multiple-tool-selector/index.tsx
@@ -2,7 +2,6 @@ import React from 'react'
import { useTranslation } from 'react-i18next'
import {
RiAddLine,
- RiArrowDropDownLine,
RiQuestionLine,
} from '@remixicon/react'
import ToolSelector from '@/app/components/plugins/plugin-detail-panel/tool-selector'
@@ -13,6 +12,7 @@ import type { ToolValue } from '@/app/components/workflow/block-selector/types'
import type { Node } from 'reactflow'
import type { NodeOutPutVar } from '@/app/components/workflow/types'
import cn from '@/utils/classnames'
+import { ArrowDownRoundFill } from '@/app/components/base/icons/src/vender/solid/general'
type Props = {
disabled?: boolean
@@ -98,14 +98,12 @@ const MultipleToolSelector = ({
)}
{supportCollapse && (
-
-
-
+
)}
{value.length > 0 && (
diff --git a/web/app/components/workflow/nodes/_base/components/collapse/index.tsx b/web/app/components/workflow/nodes/_base/components/collapse/index.tsx
index a877d02be4..16fba88a25 100644
--- a/web/app/components/workflow/nodes/_base/components/collapse/index.tsx
+++ b/web/app/components/workflow/nodes/_base/components/collapse/index.tsx
@@ -1,5 +1,5 @@
import type { ReactNode } from 'react'
-import { useState } from 'react'
+import { useMemo, useState } from 'react'
import { ArrowDownRoundFill } from '@/app/components/base/icons/src/vender/solid/general'
import cn from '@/utils/classnames'
@@ -7,12 +7,12 @@ export { default as FieldCollapse } from './field-collapse'
type CollapseProps = {
disabled?: boolean
- trigger: React.JSX.Element
+ trigger: React.JSX.Element | ((collapseIcon: React.JSX.Element | null) => React.JSX.Element)
children: React.JSX.Element
collapsed?: boolean
onCollapse?: (collapsed: boolean) => void
operations?: ReactNode
-
+ hideCollapseIcon?: boolean
}
const Collapse = ({
disabled,
@@ -21,10 +21,23 @@ const Collapse = ({
collapsed,
onCollapse,
operations,
+ hideCollapseIcon,
}: CollapseProps) => {
const [collapsedLocal, setCollapsedLocal] = useState(true)
const collapsedMerged = collapsed !== undefined ? collapsed : collapsedLocal
+ const collapseIcon = useMemo(() => {
+ if (disabled)
+ return null
+ return (
+
+ )
+ }, [collapsedMerged, disabled])
return (
<>
@@ -37,19 +50,12 @@ const Collapse = ({
}
}}
>
- {trigger}
-
- {
- !disabled && (
-
- )
- }
-
+ {typeof trigger === 'function' ? trigger(collapseIcon) : trigger}
+ {!hideCollapseIcon && (
+
+ {collapseIcon}
+
+ )}
{operations}
diff --git a/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-on-panel.tsx b/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-on-panel.tsx
index b36abbfb00..cfcbae80f3 100644
--- a/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-on-panel.tsx
+++ b/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-on-panel.tsx
@@ -49,20 +49,23 @@ const ErrorHandle = ({
disabled={!error_strategy}
collapsed={collapsed}
onCollapse={setCollapsed}
+ hideCollapseIcon
trigger={
-
-
-
- {t('workflow.nodes.common.errorHandle.title')}
+ collapseIcon => (
+
+
+
+ {t('workflow.nodes.common.errorHandle.title')}
+
+
+ {collapseIcon}
-
+
-
-
- }
+ )}
>
<>
{
diff --git a/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-type-selector.tsx b/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-type-selector.tsx
index 190c748831..d9516dfcf5 100644
--- a/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-type-selector.tsx
+++ b/web/app/components/workflow/nodes/_base/components/error-handle/error-handle-type-selector.tsx
@@ -50,6 +50,7 @@ const ErrorHandleTypeSelector = ({
>
{
e.stopPropagation()
+ e.nativeEvent.stopImmediatePropagation()
setOpen(v => !v)
}}>