This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
commit b00187c22a17e77668d1a9776b32f6221069be17 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Wed Aug 9 11:39:06 2023 -0400 Fix #842 --- karavan-core/package-lock.json | 4 ++-- karavan-core/src/core/api/CamelDefinitionApiExt.ts | 20 ++++++++------------ .../src/designer/route/DslConnections.tsx | 4 ++-- .../src/designer/route/DslProperties.tsx | 13 +++++++++---- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/karavan-core/package-lock.json b/karavan-core/package-lock.json index 0a0b426f..2cbf7bc4 100644 --- a/karavan-core/package-lock.json +++ b/karavan-core/package-lock.json @@ -1,12 +1,12 @@ { "name": "karavan-core", - "version": "3.21.1-SNAPSHOT", + "version": "4.0.0-RC2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "karavan-core", - "version": "3.21.1-SNAPSHOT", + "version": "4.0.0-RC2", "license": "Apache-2.0", "dependencies": { "@types/js-yaml": "^4.0.5", diff --git a/karavan-core/src/core/api/CamelDefinitionApiExt.ts b/karavan-core/src/core/api/CamelDefinitionApiExt.ts index 9ff5f563..954c613f 100644 --- a/karavan-core/src/core/api/CamelDefinitionApiExt.ts +++ b/karavan-core/src/core/api/CamelDefinitionApiExt.ts @@ -568,19 +568,15 @@ export class CamelDefinitionApiExt { }; static getDataFormat = (element: CamelElement | undefined): ElementMeta | undefined => { - if (!element) { - return undefined; - } - - for (const fieldName in element) { - const df = CamelMetadataApi.getCamelDataFormatMetadataByName(fieldName); - if (df) { - return df; - } + let result: ElementMeta | undefined = undefined; + if (element) { + Object.keys(element).forEach(fieldName => { + const df = CamelMetadataApi.getCamelDataFormatMetadataByName(fieldName); + result = (element as any)[fieldName] ? df : result; + }); } - - return undefined; - }; + return result; + } static getExpressionValue = (expression: ExpressionDefinition | undefined): CamelElement | undefined => { const language = CamelDefinitionApiExt.getExpressionLanguageName(expression); diff --git a/karavan-designer/src/designer/route/DslConnections.tsx b/karavan-designer/src/designer/route/DslConnections.tsx index 5280bc12..938042d4 100644 --- a/karavan-designer/src/designer/route/DslConnections.tsx +++ b/karavan-designer/src/designer/route/DslConnections.tsx @@ -126,7 +126,7 @@ export class DslConnections extends React.Component<Props, State> { const imageX = incomingX - r + 5; const imageY = fromY - r + 5; return ( - <div style={{display: "block", position: "absolute", top: imageY, left: imageX}}> + <div key={pos.step.uuid + "-icon"} style={{display: "block", position: "absolute", top: imageY, left: imageX}}> {CamelUi.getConnectionIcon(pos.step)} </div> ) @@ -212,7 +212,7 @@ export class DslConnections extends React.Component<Props, State> { const imageX = outgoingX - r + 5; const imageY = outgoingY - r + 5; return ( - <div style={{display: "block", position: "absolute", top: imageY, left: imageX}}> + <div key={pos.step.uuid + "-icon"} style={{display: "block", position: "absolute", top: imageY, left: imageX}}> {CamelUi.getConnectionIcon(pos.step)} </div> ) diff --git a/karavan-designer/src/designer/route/DslProperties.tsx b/karavan-designer/src/designer/route/DslProperties.tsx index 435480de..f10a0eec 100644 --- a/karavan-designer/src/designer/route/DslProperties.tsx +++ b/karavan-designer/src/designer/route/DslProperties.tsx @@ -33,7 +33,7 @@ import {Integration, CamelElement} from "karavan-core/lib/model/IntegrationDefin import {CamelDefinitionApiExt} from "karavan-core/lib/api/CamelDefinitionApiExt"; import {CamelUtil} from "karavan-core/lib/api/CamelUtil"; import {CamelUi, RouteToCreate} from "../utils/CamelUi"; -import {CamelMetadataApi, PropertyMeta} from "karavan-core/lib/model/CamelMetadata"; +import {CamelMetadataApi, DataFormats, PropertyMeta} from "karavan-core/lib/model/CamelMetadata"; import {IntegrationHeader} from "../utils/KaravanComponents"; import CloneIcon from "@patternfly/react-icons/dist/esm/icons/clone-icon"; @@ -170,7 +170,7 @@ export class DslProperties extends React.Component<Props, State> { getPropertyFields = (properties: PropertyMeta[]) => { return (<> - {this.state.step && !['MarshalDefinition', 'UnmarshalDefinition'].includes(this.state.step.dslName) && properties.map((property: PropertyMeta) => + {properties.map((property: PropertyMeta) => <DslPropertyField key={property.name} integration={this.props.integration} property={property} @@ -186,7 +186,11 @@ export class DslProperties extends React.Component<Props, State> { } render() { - const properties = this.getProperties(); + const dataFormats = DataFormats.map(value => value[0]); + const dataFormatElement = this.state.step !== undefined && ['MarshalDefinition', 'UnmarshalDefinition'].includes(this.state.step.dslName); + const properties = !dataFormatElement + ? this.getProperties() + : this.getProperties().filter(p => !dataFormats.includes(p.name)); const propertiesMain = properties.filter(p => !p.label.includes("advanced")); const propertiesAdvanced = properties.filter(p => p.label.includes("advanced")); return ( @@ -196,7 +200,8 @@ export class DslProperties extends React.Component<Props, State> { {this.state.step === undefined && <IntegrationHeader integration={this.props.integration}/>} {this.state.step && this.getComponentHeader()} {this.getPropertyFields(propertiesMain)} - {propertiesAdvanced.length > 0 && + {this.state.step && !['MarshalDefinition', 'UnmarshalDefinition'].includes(this.state.step.dslName) + && propertiesAdvanced.length > 0 && <ExpandableSection toggleText={'Advanced properties'} onToggle={isExpanded => this.setState({isShowAdvanced: !this.state.isShowAdvanced})}