@cainiaofe/cn-ui-m-lowcode
Version:
68 lines (60 loc) • 1.57 kB
JSX
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,
};