| import type { FC } from 'react' | |
| import React from 'react' | |
| import { useTranslation } from 'react-i18next' | |
| import useConfig from './use-config' | |
| import type { AnswerNodeType } from './types' | |
| import Editor from '@/app/components/workflow/nodes/_base/components/prompt/editor' | |
| import type { NodePanelProps } from '@/app/components/workflow/types' | |
| import useAvailableVarList from '@/app/components/workflow/nodes/_base/hooks/use-available-var-list' | |
| const i18nPrefix = 'workflow.nodes.answer' | |
| const Panel: FC<NodePanelProps<AnswerNodeType>> = ({ | |
| id, | |
| data, | |
| }) => { | |
| const { t } = useTranslation() | |
| const { | |
| readOnly, | |
| inputs, | |
| handleAnswerChange, | |
| filterVar, | |
| } = useConfig(id, data) | |
| const { availableVars, availableNodesWithParent } = useAvailableVarList(id, { | |
| onlyLeafNodeVar: false, | |
| hideChatVar: false, | |
| hideEnv: false, | |
| filterVar, | |
| }) | |
| return ( | |
| <div className='mt-2 mb-2 px-4 space-y-4'> | |
| <Editor | |
| readOnly={readOnly} | |
| justVar | |
| title={t(`${i18nPrefix}.answer`)!} | |
| value={inputs.answer} | |
| onChange={handleAnswerChange} | |
| nodesOutputVars={availableVars} | |
| availableNodes={availableNodesWithParent} | |
| isSupportFileVar | |
| /> | |
| </div> | |
| ) | |
| } | |
| export default React.memo(Panel) | |