Spaces:
Build error
Build error
import type { FC } from 'react' | |
import { | |
memo, | |
} from 'react' | |
import { useTranslation } from 'react-i18next' | |
import { | |
RiAddLine, | |
} from '@remixicon/react' | |
import useConfig from './use-config' | |
import type { IfElseNodeType } from './types' | |
import ConditionWrap from './components/condition-wrap' | |
import Button from '@/app/components/base/button' | |
import type { NodePanelProps } from '@/app/components/workflow/types' | |
import Field from '@/app/components/workflow/nodes/_base/components/field' | |
const i18nPrefix = 'workflow.nodes.ifElse' | |
const Panel: FC<NodePanelProps<IfElseNodeType>> = ({ | |
id, | |
data, | |
}) => { | |
const { t } = useTranslation() | |
const { | |
readOnly, | |
inputs, | |
filterVar, | |
handleAddCase, | |
handleRemoveCase, | |
handleSortCase, | |
handleAddCondition, | |
handleUpdateCondition, | |
handleRemoveCondition, | |
handleToggleConditionLogicalOperator, | |
handleAddSubVariableCondition, | |
handleRemoveSubVariableCondition, | |
handleUpdateSubVariableCondition, | |
handleToggleSubVariableConditionLogicalOperator, | |
nodesOutputVars, | |
availableNodes, | |
varsIsVarFileAttribute, | |
} = useConfig(id, data) | |
const cases = inputs.cases || [] | |
return ( | |
<div className='p-1'> | |
<ConditionWrap | |
nodeId={id} | |
cases={cases} | |
readOnly={readOnly} | |
handleSortCase={handleSortCase} | |
handleRemoveCase={handleRemoveCase} | |
handleAddCondition={handleAddCondition} | |
handleRemoveCondition={handleRemoveCondition} | |
handleUpdateCondition={handleUpdateCondition} | |
handleToggleConditionLogicalOperator={handleToggleConditionLogicalOperator} | |
handleAddSubVariableCondition={handleAddSubVariableCondition} | |
handleRemoveSubVariableCondition={handleRemoveSubVariableCondition} | |
handleUpdateSubVariableCondition={handleUpdateSubVariableCondition} | |
handleToggleSubVariableConditionLogicalOperator={handleToggleSubVariableConditionLogicalOperator} | |
nodesOutputVars={nodesOutputVars} | |
availableNodes={availableNodes} | |
varsIsVarFileAttribute={varsIsVarFileAttribute} | |
filterVar={filterVar} | |
/> | |
<div className='px-4 py-2'> | |
<Button | |
className='w-full' | |
variant='tertiary' | |
onClick={() => handleAddCase()} | |
disabled={readOnly} | |
> | |
<RiAddLine className='mr-1 w-4 h-4' /> | |
ELIF | |
</Button> | |
</div> | |
<div className='my-2 mx-3 h-[1px] bg-divider-subtle'></div> | |
<Field | |
title={t(`${i18nPrefix}.else`)} | |
className='px-4 py-2' | |
> | |
<div className='leading-[18px] text-xs font-normal text-text-tertiary'>{t(`${i18nPrefix}.elseDescription`)}</div> | |
</Field> | |
</div> | |
) | |
} | |
export default memo(Panel) | |