diff --git a/src/components/Dashboard/common/ObjectInfo.jsx b/src/components/Dashboard/common/ObjectInfo.jsx index 397dff8..65818a5 100644 --- a/src/components/Dashboard/common/ObjectInfo.jsx +++ b/src/components/Dashboard/common/ObjectInfo.jsx @@ -13,6 +13,7 @@ const ObjectInfo = ({ properties = [], required = undefined, visibleProperties = {}, + objectPropertyProps = {}, ...rest }) => { const allItems = getModelProperties(type) @@ -55,6 +56,7 @@ const ObjectInfo = ({ children: ( @@ -91,7 +93,8 @@ ObjectInfo.propTypes = { type: PropTypes.string.isRequired, objectData: PropTypes.object, required: PropTypes.bool, - visibleProperties: PropTypes.object + visibleProperties: PropTypes.object, + objectPropertyProps: PropTypes.object } export default ObjectInfo diff --git a/src/components/Dashboard/common/ObjectProperty.jsx b/src/components/Dashboard/common/ObjectProperty.jsx index 0a73426..c702d88 100644 --- a/src/components/Dashboard/common/ObjectProperty.jsx +++ b/src/components/Dashboard/common/ObjectProperty.jsx @@ -37,6 +37,10 @@ import { getPropertyValue } from '../../../database/ObjectModels' import PropertyChanges from './PropertyChanges' import NetGrossDisplay from './NetGrossDisplay' import NetGrossInput from './NetGrossInput' +import ObjectList from './ObjectList' +import VarianceDisplay from './VarianceDisplay' +import OperationDisplay from './OperationDisplay' +import MarkdownDisplay from './MarkdownDisplay' const { Text } = Typography @@ -71,7 +75,7 @@ const ObjectProperty = ({ initial = false, ...rest }) => { - if (typeof value == 'function' && objectData) { + if (value && typeof value == 'function' && objectData) { value = value(objectData) } @@ -87,6 +91,14 @@ const ObjectProperty = ({ difference = difference(objectData) } + if (prefix && typeof prefix == 'function' && objectData) { + prefix = prefix(objectData) + } + + if (suffix && typeof suffix == 'function' && objectData) { + suffix = suffix(objectData) + } + if (!value) { value = getPropertyValue(objectData, name) } @@ -218,6 +230,19 @@ const ObjectProperty = ({ ) } } + case 'variance': { + if (value != null) { + return ( + + ) + } else { + return ( + + n/a + + ) + } + } case 'text': if (value != null && value != '') { return ( @@ -234,6 +259,16 @@ const ObjectProperty = ({ ) } + case 'markdown': + if (value != null && value != '') { + return + } else { + return ( + + n/a + + ) + } case 'email': if (value != null && value != '') { return @@ -265,6 +300,9 @@ const ObjectProperty = ({ ) } } + case 'objectList': { + return + } case 'state': { if (value && value?.type) { switch (objectType) { @@ -346,6 +384,17 @@ const ObjectProperty = ({ ) } } + case 'operation': { + if (value != null) { + return + } else { + return ( + + n/a + + ) + } + } case 'propertyChanges': { return } @@ -555,7 +604,7 @@ const ObjectProperty = ({ ) - case 'gcodefile': + case 'gcodeFile': return ( @@ -603,20 +652,22 @@ const ObjectProperty = ({ ObjectProperty.propTypes = { type: PropTypes.string.isRequired, - value: PropTypes.any, + value: PropTypes.oneOfType([PropTypes.any, PropTypes.func]), isEditing: PropTypes.bool, formItemProps: PropTypes.object, required: PropTypes.bool, name: PropTypes.string, - prefix: PropTypes.string, - suffix: PropTypes.string, + prefix: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), + suffix: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), min: PropTypes.number, max: PropTypes.number, step: PropTypes.number, showLabel: PropTypes.bool, - objectType: PropTypes.string, + objectType: PropTypes.oneOfType([PropTypes.string, PropTypes.func]), readOnly: PropTypes.bool, - disabled: PropTypes.bool + disabled: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), + difference: PropTypes.oneOfType([PropTypes.any, PropTypes.func]), + objectData: PropTypes.object } export default ObjectProperty