From f92130338b19ceed8649da5803390da9b1308b03 Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 23 Apr 2024 17:46:59 +0800 Subject: [PATCH] feat: prompt editor support auto height by content height and fix some bugs (#3712) --- .../model-parameter-modal/index.tsx | 3 +- .../model-parameter-modal/trigger.tsx | 4 +- .../nodes/_base/components/editor/base.tsx | 7 ++- .../components/editor/code-editor/index.tsx | 3 ++ .../_base/components/editor/text-editor.tsx | 3 ++ .../nodes/_base/components/prompt/editor.tsx | 51 +++++++------------ .../nodes/_base/hooks/use-toggle-expend.ts | 15 +++++- .../components/workflow/nodes/code/panel.tsx | 1 + .../components/key-value/bulk-edit/index.tsx | 1 + .../components/advanced-setting.tsx | 1 + .../components/class-item.tsx | 1 + .../nodes/template-transform/panel.tsx | 1 + 12 files changed, 52 insertions(+), 39 deletions(-) diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx index b1aba24eae..47d42b65e5 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/index.tsx @@ -218,13 +218,14 @@ const ModelParameterModal: FC = ({ !isInWorkflow && 'px-10 pt-6 pb-8', isInWorkflow && 'p-4')}>
-
+
{t('common.modelProvider.model').toLocaleUpperCase()}
{ diff --git a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx index 949fb33a99..6fcf8b3838 100644 --- a/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx +++ b/web/app/components/header/account-setting/model-provider-page/model-parameter-modal/trigger.tsx @@ -47,7 +47,7 @@ const Trigger: FC = ({ 'relative flex items-center px-2 h-8 rounded-lg cursor-pointer', !isInWorkflow && 'border hover:border-[1.5px]', !isInWorkflow && (disabled ? 'border-[#F79009] bg-[#FFFAEB]' : 'border-[#444CE7] bg-primary-50'), - isInWorkflow && 'bg-gray-100 border border-gray-100 hover:border-gray-200', + isInWorkflow && 'pr-[30px] bg-gray-100 border border-gray-100 hover:border-gray-200', )} > { @@ -103,7 +103,7 @@ const Trigger: FC = ({ ) : ( - + ) } {isInWorkflow && ()} diff --git a/web/app/components/workflow/nodes/_base/components/editor/base.tsx b/web/app/components/workflow/nodes/_base/components/editor/base.tsx index b76544ffe6..4f058ca6ea 100644 --- a/web/app/components/workflow/nodes/_base/components/editor/base.tsx +++ b/web/app/components/workflow/nodes/_base/components/editor/base.tsx @@ -16,6 +16,7 @@ type Props = { minHeight?: number value: string isFocus: boolean + isInNode?: boolean } const Base: FC = ({ @@ -26,14 +27,16 @@ const Base: FC = ({ minHeight = 120, value, isFocus, + isInNode, }) => { const ref = useRef(null) const { wrapClassName, + wrapStyle, isExpand, setIsExpand, editorExpandHeight, - } = useToggleExpend({ ref, hasFooter: false }) + } = useToggleExpend({ ref, hasFooter: false, isInNode }) const editorContentMinHeight = minHeight - 28 const [editorContentHeight, setEditorContentHeight] = useState(editorContentMinHeight) @@ -45,7 +48,7 @@ const Base: FC = ({ }, [value]) return ( -
+
{title}
diff --git a/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx b/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx index 544129aeb2..fd19c91bb7 100644 --- a/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx +++ b/web/app/components/workflow/nodes/_base/components/editor/code-editor/index.tsx @@ -18,6 +18,7 @@ type Props = { readOnly?: boolean isJSONStringifyBeauty?: boolean height?: number + isInNode?: boolean } const languageMap = { @@ -35,6 +36,7 @@ const CodeEditor: FC = ({ readOnly, isJSONStringifyBeauty, height, + isInNode, }) => { const [isFocus, setIsFocus] = React.useState(false) @@ -90,6 +92,7 @@ const CodeEditor: FC = ({ headerRight={headerRight} isFocus={isFocus && !readOnly} minHeight={height || 200} + isInNode={isInNode} > <> {/* https://www.npmjs.com/package/@monaco-editor/react */} diff --git a/web/app/components/workflow/nodes/_base/components/editor/text-editor.tsx b/web/app/components/workflow/nodes/_base/components/editor/text-editor.tsx index 5be80b1ffc..eaffcac568 100644 --- a/web/app/components/workflow/nodes/_base/components/editor/text-editor.tsx +++ b/web/app/components/workflow/nodes/_base/components/editor/text-editor.tsx @@ -13,6 +13,7 @@ type Props = { onBlur?: () => void placeholder?: string readonly?: boolean + isInNode?: boolean } const TextEditor: FC = ({ @@ -24,6 +25,7 @@ const TextEditor: FC = ({ onBlur, placeholder, readonly, + isInNode, }) => { const [isFocus, { setTrue: setIsFocus, @@ -43,6 +45,7 @@ const TextEditor: FC = ({ headerRight={headerRight} isFocus={isFocus} minHeight={minHeight} + isInNode={isInNode} >