UNPKG

@cainiaofe/cn-ui-m-lowcode

Version:
68 lines (60 loc) 1.57 kB
import React from 'react'; import isPlainObject from 'lodash/isPlainObject'; import { calculateTextExprValue, isArrayNotEmpty, makeALink, makeButtons, } from '@/common/util/util'; import { ButtonPosition } from '@/type/button-position'; import { CnResult as UICnResult } from '@cainiaofe/cn-ui-m'; const CnResult = (props) => { const { title = '', _context, subTitle, type, buttons, ...rest } = props; let realSubTitle; if (isPlainObject(subTitle)) { realSubTitle = makeALink({ linkExpr: subTitle, recordDataSource: {}, _context, }); } else { realSubTitle = calculateTextExprValue(subTitle, { state: _context?.state, recordDataSource: {}, }); } const realTitle = calculateTextExprValue(title, { state: _context?.state, recordDataSource: {}, }) || ''; const realType = calculateTextExprValue(type, { state: _context?.state, recordDataSource: {}, }); const extraProps = { title: realTitle, subTitle: realSubTitle, type: realType, }; if (isArrayNotEmpty(buttons)) { extraProps.extra = makeButtons({ buttons: buttons?.map((item) => { return { ...item, position: ButtonPosition.result, }; }), _context, state: _context?.state, urlParamsDataSource: _context?.state?.urlParams || {}, recordDataSource: {}, }); } return <UICnResult {...rest} {...extraProps} />; }; export { CnResult }; CnResult.displayName = 'CnResult'; CnResult.defaultProps = { children: null, };