diff --git a/web/app/components/app/configuration/config/automatic/get-automatic-res.tsx b/web/app/components/app/configuration/config/automatic/get-automatic-res.tsx index e6b6c83846..5c87eea3ca 100644 --- a/web/app/components/app/configuration/config/automatic/get-automatic-res.tsx +++ b/web/app/components/app/configuration/config/automatic/get-automatic-res.tsx @@ -50,6 +50,7 @@ export type IGetAutomaticResProps = { onFinished: (res: GenRes) => void flowId?: string nodeId?: string + editorId?: string currentPrompt?: string isBasicMode?: boolean } @@ -76,6 +77,7 @@ const GetAutomaticRes: FC = ({ onClose, flowId, nodeId, + editorId, currentPrompt, isBasicMode, onFinished, @@ -132,7 +134,8 @@ const GetAutomaticRes: FC = ({ }, ] - const [instructionFromSessionStorage, setInstruction] = useSessionStorageState(`improve-instruction-${flowId}${isBasicMode ? '' : `-${nodeId}`}`) + // eslint-disable-next-line sonarjs/no-nested-template-literals, sonarjs/no-nested-conditional + const [instructionFromSessionStorage, setInstruction] = useSessionStorageState(`improve-instruction-${flowId}${isBasicMode ? '' : `-${nodeId}${editorId ? `-${editorId}` : ''}`}`) const instruction = instructionFromSessionStorage || '' const [ideaOutput, setIdeaOutput] = useState('') @@ -166,7 +169,7 @@ const GetAutomaticRes: FC = ({ return true } const [isLoading, { setTrue: setLoadingTrue, setFalse: setLoadingFalse }] = useBoolean(false) - const storageKey = `${flowId}${isBasicMode ? '' : `-${nodeId}`}` + const storageKey = `${flowId}${isBasicMode ? '' : `-${nodeId}${editorId ? `-${editorId}` : ''}`}` const { addVersion, current, currentVersionIndex, setCurrentVersionIndex, versions } = useGenData({ storageKey, }) diff --git a/web/app/components/workflow/nodes/_base/components/prompt/editor.tsx b/web/app/components/workflow/nodes/_base/components/prompt/editor.tsx index 3cbdbba3cd..7a99396beb 100644 --- a/web/app/components/workflow/nodes/_base/components/prompt/editor.tsx +++ b/web/app/components/workflow/nodes/_base/components/prompt/editor.tsx @@ -42,6 +42,7 @@ type Props = { headerClassName?: string instanceId?: string nodeId?: string + editorId?: string title: string | React.JSX.Element value: string onChange: (value: string) => void @@ -85,6 +86,7 @@ const Editor: FC = ({ headerClassName, instanceId, nodeId, + editorId, title, value, onChange, @@ -163,6 +165,7 @@ const Editor: FC = ({ {isSupportPromptGenerator && ( = ({ nodesOutputVars={availableVars} availableNodes={availableNodes} nodeId={nodeId} - isSupportPromptGenerator={payload.role === PromptRole.system} + editorId={id} + isSupportPromptGenerator onGenerated={handleGenerated} modelConfig={modelConfig} isSupportJinja diff --git a/web/app/components/workflow/nodes/llm/components/prompt-generator-btn.tsx b/web/app/components/workflow/nodes/llm/components/prompt-generator-btn.tsx index d72067dd2c..c3c0483bec 100644 --- a/web/app/components/workflow/nodes/llm/components/prompt-generator-btn.tsx +++ b/web/app/components/workflow/nodes/llm/components/prompt-generator-btn.tsx @@ -16,6 +16,7 @@ type Props = { onGenerated?: (prompt: string) => void modelConfig?: ModelConfig nodeId: string + editorId?: string currentPrompt?: string } @@ -23,6 +24,7 @@ const PromptGeneratorBtn: FC = ({ className, onGenerated, nodeId, + editorId, currentPrompt, }) => { const [showAutomatic, { setTrue: showAutomaticTrue, setFalse: showAutomaticFalse }] = useBoolean(false) @@ -46,6 +48,7 @@ const PromptGeneratorBtn: FC = ({ onFinished={handleAutomaticRes} flowId={configsMap?.flowId || ''} nodeId={nodeId} + editorId={editorId} currentPrompt={currentPrompt} /> )}