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
The following commit(s) were added to refs/heads/main by this push:
new 2f3336ab Fix #1214
2f3336ab is described below
commit 2f3336abe4e37dbffab1a6c534165029c3b5e3bd
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Wed Apr 3 17:04:42 2024 -0400
Fix #1214
---
karavan-app/src/main/webui/src/editor/DesignerEditor.tsx | 5 +++--
karavan-designer/src/designer/DesignerStore.ts | 4 +---
.../designer/property/property/ComponentPropertyField.tsx | 14 +++++++-------
karavan-space/src/designer/DesignerStore.ts | 4 +---
.../designer/property/property/ComponentPropertyField.tsx | 14 +++++++-------
5 files changed, 19 insertions(+), 22 deletions(-)
diff --git a/karavan-app/src/main/webui/src/editor/DesignerEditor.tsx
b/karavan-app/src/main/webui/src/editor/DesignerEditor.tsx
index 1ff1e947..cd1ad6f4 100644
--- a/karavan-app/src/main/webui/src/editor/DesignerEditor.tsx
+++ b/karavan-app/src/main/webui/src/editor/DesignerEditor.tsx
@@ -38,7 +38,7 @@ export function DesignerEditor(props: Props) {
const [files] = useFilesStore((s) => [s.files], shallow);
const [propertyPlaceholders, setPropertyPlaceholders] =
useState<string[]>([]);
const [beans, setBeans] = useState<RegistryBeanDefinition[]>([]);
- const [key, setKey] = useState<string>(Math.random().toString());
+ const [key, setKey] = useState<string>();
const [code, setCode] = useState<string>();
useEffect(() => {
@@ -55,6 +55,7 @@ export function DesignerEditor(props: Props) {
prevState.push(...bs);
return prevState;
});
+ setKey(Math.random().toString());
return () => {
//save custom kamelet on page unload
if (props.projectId.includes('kamelets') && file) {
@@ -110,7 +111,7 @@ export function DesignerEditor(props: Props) {
}
}
- return (file !== undefined ?
+ return (file !== undefined && key !== undefined ?
<KaravanDesigner key={key}
showCodeTab={true}
dark={false}
diff --git a/karavan-designer/src/designer/DesignerStore.ts
b/karavan-designer/src/designer/DesignerStore.ts
index 40418fb1..ddd9b91a 100644
--- a/karavan-designer/src/designer/DesignerStore.ts
+++ b/karavan-designer/src/designer/DesignerStore.ts
@@ -310,9 +310,7 @@ export const useDesignerStore =
createWithEqualityFn<DesignerState & DesignerAct
},
setBeans: (beans: RegistryBeanDefinition[]) => {
set((state: DesignerState) => {
- state.beans.length = 0;
- state.beans.push(...beans);
- return state;
+ return {beans: [...beans]};
})
},
}), shallow)
\ No newline at end of file
diff --git
a/karavan-designer/src/designer/property/property/ComponentPropertyField.tsx
b/karavan-designer/src/designer/property/property/ComponentPropertyField.tsx
index 52488a89..5e05ceb7 100644
--- a/karavan-designer/src/designer/property/property/ComponentPropertyField.tsx
+++ b/karavan-designer/src/designer/property/property/ComponentPropertyField.tsx
@@ -114,7 +114,7 @@ export function ComponentPropertyField(props: Props) {
}
function getSelectBean(property: ComponentProperty, value: any) {
- const selectOptions: JSX.Element[] = [];
+ const selectOptions: React.JSX.Element[] = [];
if (beans) {
selectOptions.push(<SelectOption key={0} value={"Select..."}
isPlaceholder/>);
selectOptions.push(...beans.map((bean) => <SelectOption
key={bean.name} value={beanPrefix + bean.name}
@@ -270,7 +270,7 @@ export function ComponentPropertyField(props: Props) {
setTextValue(v);
setCheckChanges(true);
}}
- />
+ />
}
<InputGroupItem>
<Tooltip position="bottom-end" content={"Show Editor"}>
@@ -288,11 +288,11 @@ export function ComponentPropertyField(props: Props) {
title={property.displayName}
onClose={() => setShowEditor(false)}
onSave={(fieldId, value1) => {
- setTextValue(value1);
- parametersChanged(property.name, value1,
property.kind === 'path')
- setShowEditor(false);
- setCheckChanges(false);
- }}/>
+ setTextValue(value1);
+ parametersChanged(property.name,
value1, property.kind === 'path')
+ setShowEditor(false);
+ setCheckChanges(false);
+ }}/>
</InputGroupItem>}
{property.secret &&
<Tooltip position="bottom-end" content={showPassword ? "Hide"
: "Show"}>
diff --git a/karavan-space/src/designer/DesignerStore.ts
b/karavan-space/src/designer/DesignerStore.ts
index 40418fb1..ddd9b91a 100644
--- a/karavan-space/src/designer/DesignerStore.ts
+++ b/karavan-space/src/designer/DesignerStore.ts
@@ -310,9 +310,7 @@ export const useDesignerStore =
createWithEqualityFn<DesignerState & DesignerAct
},
setBeans: (beans: RegistryBeanDefinition[]) => {
set((state: DesignerState) => {
- state.beans.length = 0;
- state.beans.push(...beans);
- return state;
+ return {beans: [...beans]};
})
},
}), shallow)
\ No newline at end of file
diff --git
a/karavan-space/src/designer/property/property/ComponentPropertyField.tsx
b/karavan-space/src/designer/property/property/ComponentPropertyField.tsx
index 52488a89..5e05ceb7 100644
--- a/karavan-space/src/designer/property/property/ComponentPropertyField.tsx
+++ b/karavan-space/src/designer/property/property/ComponentPropertyField.tsx
@@ -114,7 +114,7 @@ export function ComponentPropertyField(props: Props) {
}
function getSelectBean(property: ComponentProperty, value: any) {
- const selectOptions: JSX.Element[] = [];
+ const selectOptions: React.JSX.Element[] = [];
if (beans) {
selectOptions.push(<SelectOption key={0} value={"Select..."}
isPlaceholder/>);
selectOptions.push(...beans.map((bean) => <SelectOption
key={bean.name} value={beanPrefix + bean.name}
@@ -270,7 +270,7 @@ export function ComponentPropertyField(props: Props) {
setTextValue(v);
setCheckChanges(true);
}}
- />
+ />
}
<InputGroupItem>
<Tooltip position="bottom-end" content={"Show Editor"}>
@@ -288,11 +288,11 @@ export function ComponentPropertyField(props: Props) {
title={property.displayName}
onClose={() => setShowEditor(false)}
onSave={(fieldId, value1) => {
- setTextValue(value1);
- parametersChanged(property.name, value1,
property.kind === 'path')
- setShowEditor(false);
- setCheckChanges(false);
- }}/>
+ setTextValue(value1);
+ parametersChanged(property.name,
value1, property.kind === 'path')
+ setShowEditor(false);
+ setCheckChanges(false);
+ }}/>
</InputGroupItem>}
{property.secret &&
<Tooltip position="bottom-end" content={showPassword ? "Hide"
: "Show"}>