import { Fragment } from 'react'; import { DateTimeDisplay, Card, CardHeader, CardContent, Flex, withConfiguration } from '@pega/cosmos-react-core'; import type { PConnFieldProps } from './PConnProps'; import './create-nonce'; // includes in bundle import Operator from './Operator'; import StyledPegaDxilMyPageCaseWidgetWrapper from './styles'; // interface for props interface PegaDxilMyPageCaseWidgetProps extends PConnFieldProps { // If any, enter additional props that only exist on TextInput here title: string; createLabel: string; updateLabel: string; resolveLabel: string; createOperator: any; updateOperator: any; resolveOperator: any; createDateTime: string; updateDateTime: string; resolveDateTime: string; hideLabel: boolean; } // Duplicated runtime code from Constellation Design System Component // props passed in combination of props from property panel (config.json) and run time props from Constellation // any default values in config.pros should be set in defaultProps at bottom of this file function PegaDxilMyPageCaseWidget(props: PegaDxilMyPageCaseWidgetProps) { const { getPConnect, title = 'Create operator', label = 'Create operator', createLabel, updateLabel, createOperator, updateOperator, createDateTime, updateDateTime, resolveLabel, resolveOperator, resolveDateTime, hideLabel } = props; const [_label, user, dateTimeValue] = label === 'Create operator' ? [createLabel, createOperator, createDateTime] : label === 'Update operator' ? [updateLabel, updateOperator, updateDateTime] : [resolveLabel, resolveOperator, resolveDateTime]; return user.userId && user.userName ? ( {title} {dateTimeValue && ( {' '} )} ) : ( defVal ); } export default withConfiguration(PegaDxilMyPageCaseWidget); // as objects are there in props, shallow comparision fails & re-rendering of comp happens even with // same key value pairs in obj. hence using custom comparison function on when to re-render // const comparisonFn = (prevProps, nextProps) => { // return prevProps.updateDateTime === nextProps.updateDateTime; // };