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)