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 e2a09697 issues with beans
e2a09697 is described below

commit e2a09697c4a3a554b21817c8d58a68f25e5a05cf
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Thu Sep 26 15:21:56 2024 -0400

    issues with beans
---
 .../property/property/DslPropertyField.tsx         | 85 +++++++++++-----------
 .../src/designer/property/property/SelectField.tsx |  2 +-
 .../property/property/DslPropertyField.tsx         | 85 +++++++++++-----------
 .../src/designer/property/property/SelectField.tsx |  2 +-
 .../property/property/DslPropertyField.tsx         | 85 +++++++++++-----------
 .../src/designer/property/property/SelectField.tsx |  2 +-
 6 files changed, 126 insertions(+), 135 deletions(-)

diff --git 
a/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
 
b/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
index a8d3430c..9fd45783 100644
--- 
a/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
+++ 
b/karavan-app/src/main/webui/src/designer/property/property/DslPropertyField.tsx
@@ -470,6 +470,7 @@ export function DslPropertyField(props: Props) {
     }
 
     function showCode(name: string, javaType: string) {
+        console.log(name, javaType)
         const {property} = props;
         InfrastructureAPI.onGetCustomCode?.(name, 
property.javaType).then(value => {
             if (value === undefined) {
@@ -487,6 +488,7 @@ export function DslPropertyField(props: Props) {
         const {dslLanguage} = props;
         const selectOptions: SelectOptionProps[] = [];
         if (beans) {
+            console.log(beans)
             selectOptions.push(...beans.map((bean) => {
                 return {value: beanPrefix + bean.name, children: bean.name}
             }));
@@ -497,51 +499,46 @@ export function DslPropertyField(props: Props) {
                 })
             );
         }
+        if (selectOptions.filter(o => o.value === value?.toString()).length 
=== 0) {
+            selectOptions.push({
+                value: value, children: value, description: 'Custom Bean'
+            })
+        }
         return (
-            <SelectField
-                id={property.name}
-                name={property.name}
-                placeholder='Select bean'
-                selectOptions={selectOptions}
-                value={value?.toString()}
-                onChange={(name, value) => propertyChanged(property.name, 
value)}
-            />
-            // <InputGroup>
-            //     <InputGroupItem isFill>
-            //         <TextInput
-            //             ref={ref}
-            //             className="text-field" isRequired
-            //             type="text"
-            //             id={property.name} name={property.name}
-            //             value={value?.toString()}
-            //             onChange={(_, value) => {
-            //                 propertyChanged(property.name, 
CamelUtil.capitalizeName(value?.replace(/\s/g, '')))
-            //             }}
-            //             readOnlyVariant={isUriReadOnly(property) ? 
"default" : undefined}/>
-            //     </InputGroupItem>
-            //     <InputGroupItem>
-            //         <Tooltip position="bottom-end" content={"Create Java 
Class"}>
-            //             <Button isDisabled={value?.length === 0} 
variant="control"
-            //                     onClick={e => showCode(value, 
property.javaType)}>
-            //                 <PlusIcon/>
-            //             </Button>
-            //         </Tooltip>
-            //     </InputGroupItem>
-            //     {showEditor && <InputGroupItem>
-            //         <ExpressionModalEditor name={property.name}
-            //                                customCode={customCode}
-            //                                showEditor={showEditor}
-            //                                dark={dark}
-            //                                dslLanguage={dslLanguage}
-            //                                title="Java Class"
-            //                                onClose={() => 
setShowEditor(false)}
-            //                                onSave={(fieldId, value1) => {
-            //                                    propertyChanged(fieldId, 
value);
-            //                                    
InfrastructureAPI.onSaveCustomCode?.(value, value1);
-            //                                    setShowEditor(false)
-            //                                }}/>
-            //     </InputGroupItem>}
-            // </InputGroup>
+            <InputGroup>
+                <InputGroupItem isFill>
+                    <SelectField
+                        id={property.name}
+                        name={property.name}
+                        placeholder='Select bean'
+                        selectOptions={selectOptions}
+                        value={value?.toString()}
+                        onChange={(name, value) => 
propertyChanged(property.name, value)}
+                    />
+                </InputGroupItem>
+                <InputGroupItem>
+                    <Tooltip position="bottom-end" content={"Create Java 
Class"}>
+                        <Button isDisabled={value?.length === 0} 
variant="control"
+                                onClick={e => showCode(value, 
property.javaType)}>
+                            <PlusIcon/>
+                        </Button>
+                    </Tooltip>
+                </InputGroupItem>
+                {showEditor && <InputGroupItem>
+                    <ExpressionModalEditor name={property.name}
+                                           customCode={customCode}
+                                           showEditor={showEditor}
+                                           dark={dark}
+                                           dslLanguage={dslLanguage}
+                                           title="Java Class"
+                                           onClose={() => setShowEditor(false)}
+                                           onSave={(fieldId, value1) => {
+                                               propertyChanged(fieldId, value);
+                                               
InfrastructureAPI.onSaveCustomCode?.(value, value1);
+                                               setShowEditor(false)
+                                           }}/>
+                </InputGroupItem>}
+            </InputGroup>
         )
     }
 
diff --git 
a/karavan-app/src/main/webui/src/designer/property/property/SelectField.tsx 
b/karavan-app/src/main/webui/src/designer/property/property/SelectField.tsx
index 3f3affc0..ad4b1834 100644
--- a/karavan-app/src/main/webui/src/designer/property/property/SelectField.tsx
+++ b/karavan-app/src/main/webui/src/designer/property/property/SelectField.tsx
@@ -82,7 +82,7 @@ export function SelectField(props: Props) {
         setSelectOptions(newSelectOptions);
     }, [filterValue]);
 
-    const createItemId = (value: any) => `select-typeahead-${value.replace(' 
', '-')}`;
+    const createItemId = (value: any) => `select-typeahead-${value?.replace(' 
', '-')}`;
 
     const setActiveAndFocusedItem = (itemIndex: number) => {
         setFocusedItemIndex(itemIndex);
diff --git 
a/karavan-designer/src/designer/property/property/DslPropertyField.tsx 
b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
index a8d3430c..9fd45783 100644
--- a/karavan-designer/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-designer/src/designer/property/property/DslPropertyField.tsx
@@ -470,6 +470,7 @@ export function DslPropertyField(props: Props) {
     }
 
     function showCode(name: string, javaType: string) {
+        console.log(name, javaType)
         const {property} = props;
         InfrastructureAPI.onGetCustomCode?.(name, 
property.javaType).then(value => {
             if (value === undefined) {
@@ -487,6 +488,7 @@ export function DslPropertyField(props: Props) {
         const {dslLanguage} = props;
         const selectOptions: SelectOptionProps[] = [];
         if (beans) {
+            console.log(beans)
             selectOptions.push(...beans.map((bean) => {
                 return {value: beanPrefix + bean.name, children: bean.name}
             }));
@@ -497,51 +499,46 @@ export function DslPropertyField(props: Props) {
                 })
             );
         }
+        if (selectOptions.filter(o => o.value === value?.toString()).length 
=== 0) {
+            selectOptions.push({
+                value: value, children: value, description: 'Custom Bean'
+            })
+        }
         return (
-            <SelectField
-                id={property.name}
-                name={property.name}
-                placeholder='Select bean'
-                selectOptions={selectOptions}
-                value={value?.toString()}
-                onChange={(name, value) => propertyChanged(property.name, 
value)}
-            />
-            // <InputGroup>
-            //     <InputGroupItem isFill>
-            //         <TextInput
-            //             ref={ref}
-            //             className="text-field" isRequired
-            //             type="text"
-            //             id={property.name} name={property.name}
-            //             value={value?.toString()}
-            //             onChange={(_, value) => {
-            //                 propertyChanged(property.name, 
CamelUtil.capitalizeName(value?.replace(/\s/g, '')))
-            //             }}
-            //             readOnlyVariant={isUriReadOnly(property) ? 
"default" : undefined}/>
-            //     </InputGroupItem>
-            //     <InputGroupItem>
-            //         <Tooltip position="bottom-end" content={"Create Java 
Class"}>
-            //             <Button isDisabled={value?.length === 0} 
variant="control"
-            //                     onClick={e => showCode(value, 
property.javaType)}>
-            //                 <PlusIcon/>
-            //             </Button>
-            //         </Tooltip>
-            //     </InputGroupItem>
-            //     {showEditor && <InputGroupItem>
-            //         <ExpressionModalEditor name={property.name}
-            //                                customCode={customCode}
-            //                                showEditor={showEditor}
-            //                                dark={dark}
-            //                                dslLanguage={dslLanguage}
-            //                                title="Java Class"
-            //                                onClose={() => 
setShowEditor(false)}
-            //                                onSave={(fieldId, value1) => {
-            //                                    propertyChanged(fieldId, 
value);
-            //                                    
InfrastructureAPI.onSaveCustomCode?.(value, value1);
-            //                                    setShowEditor(false)
-            //                                }}/>
-            //     </InputGroupItem>}
-            // </InputGroup>
+            <InputGroup>
+                <InputGroupItem isFill>
+                    <SelectField
+                        id={property.name}
+                        name={property.name}
+                        placeholder='Select bean'
+                        selectOptions={selectOptions}
+                        value={value?.toString()}
+                        onChange={(name, value) => 
propertyChanged(property.name, value)}
+                    />
+                </InputGroupItem>
+                <InputGroupItem>
+                    <Tooltip position="bottom-end" content={"Create Java 
Class"}>
+                        <Button isDisabled={value?.length === 0} 
variant="control"
+                                onClick={e => showCode(value, 
property.javaType)}>
+                            <PlusIcon/>
+                        </Button>
+                    </Tooltip>
+                </InputGroupItem>
+                {showEditor && <InputGroupItem>
+                    <ExpressionModalEditor name={property.name}
+                                           customCode={customCode}
+                                           showEditor={showEditor}
+                                           dark={dark}
+                                           dslLanguage={dslLanguage}
+                                           title="Java Class"
+                                           onClose={() => setShowEditor(false)}
+                                           onSave={(fieldId, value1) => {
+                                               propertyChanged(fieldId, value);
+                                               
InfrastructureAPI.onSaveCustomCode?.(value, value1);
+                                               setShowEditor(false)
+                                           }}/>
+                </InputGroupItem>}
+            </InputGroup>
         )
     }
 
diff --git a/karavan-designer/src/designer/property/property/SelectField.tsx 
b/karavan-designer/src/designer/property/property/SelectField.tsx
index 3f3affc0..ad4b1834 100644
--- a/karavan-designer/src/designer/property/property/SelectField.tsx
+++ b/karavan-designer/src/designer/property/property/SelectField.tsx
@@ -82,7 +82,7 @@ export function SelectField(props: Props) {
         setSelectOptions(newSelectOptions);
     }, [filterValue]);
 
-    const createItemId = (value: any) => `select-typeahead-${value.replace(' 
', '-')}`;
+    const createItemId = (value: any) => `select-typeahead-${value?.replace(' 
', '-')}`;
 
     const setActiveAndFocusedItem = (itemIndex: number) => {
         setFocusedItemIndex(itemIndex);
diff --git a/karavan-space/src/designer/property/property/DslPropertyField.tsx 
b/karavan-space/src/designer/property/property/DslPropertyField.tsx
index a8d3430c..9fd45783 100644
--- a/karavan-space/src/designer/property/property/DslPropertyField.tsx
+++ b/karavan-space/src/designer/property/property/DslPropertyField.tsx
@@ -470,6 +470,7 @@ export function DslPropertyField(props: Props) {
     }
 
     function showCode(name: string, javaType: string) {
+        console.log(name, javaType)
         const {property} = props;
         InfrastructureAPI.onGetCustomCode?.(name, 
property.javaType).then(value => {
             if (value === undefined) {
@@ -487,6 +488,7 @@ export function DslPropertyField(props: Props) {
         const {dslLanguage} = props;
         const selectOptions: SelectOptionProps[] = [];
         if (beans) {
+            console.log(beans)
             selectOptions.push(...beans.map((bean) => {
                 return {value: beanPrefix + bean.name, children: bean.name}
             }));
@@ -497,51 +499,46 @@ export function DslPropertyField(props: Props) {
                 })
             );
         }
+        if (selectOptions.filter(o => o.value === value?.toString()).length 
=== 0) {
+            selectOptions.push({
+                value: value, children: value, description: 'Custom Bean'
+            })
+        }
         return (
-            <SelectField
-                id={property.name}
-                name={property.name}
-                placeholder='Select bean'
-                selectOptions={selectOptions}
-                value={value?.toString()}
-                onChange={(name, value) => propertyChanged(property.name, 
value)}
-            />
-            // <InputGroup>
-            //     <InputGroupItem isFill>
-            //         <TextInput
-            //             ref={ref}
-            //             className="text-field" isRequired
-            //             type="text"
-            //             id={property.name} name={property.name}
-            //             value={value?.toString()}
-            //             onChange={(_, value) => {
-            //                 propertyChanged(property.name, 
CamelUtil.capitalizeName(value?.replace(/\s/g, '')))
-            //             }}
-            //             readOnlyVariant={isUriReadOnly(property) ? 
"default" : undefined}/>
-            //     </InputGroupItem>
-            //     <InputGroupItem>
-            //         <Tooltip position="bottom-end" content={"Create Java 
Class"}>
-            //             <Button isDisabled={value?.length === 0} 
variant="control"
-            //                     onClick={e => showCode(value, 
property.javaType)}>
-            //                 <PlusIcon/>
-            //             </Button>
-            //         </Tooltip>
-            //     </InputGroupItem>
-            //     {showEditor && <InputGroupItem>
-            //         <ExpressionModalEditor name={property.name}
-            //                                customCode={customCode}
-            //                                showEditor={showEditor}
-            //                                dark={dark}
-            //                                dslLanguage={dslLanguage}
-            //                                title="Java Class"
-            //                                onClose={() => 
setShowEditor(false)}
-            //                                onSave={(fieldId, value1) => {
-            //                                    propertyChanged(fieldId, 
value);
-            //                                    
InfrastructureAPI.onSaveCustomCode?.(value, value1);
-            //                                    setShowEditor(false)
-            //                                }}/>
-            //     </InputGroupItem>}
-            // </InputGroup>
+            <InputGroup>
+                <InputGroupItem isFill>
+                    <SelectField
+                        id={property.name}
+                        name={property.name}
+                        placeholder='Select bean'
+                        selectOptions={selectOptions}
+                        value={value?.toString()}
+                        onChange={(name, value) => 
propertyChanged(property.name, value)}
+                    />
+                </InputGroupItem>
+                <InputGroupItem>
+                    <Tooltip position="bottom-end" content={"Create Java 
Class"}>
+                        <Button isDisabled={value?.length === 0} 
variant="control"
+                                onClick={e => showCode(value, 
property.javaType)}>
+                            <PlusIcon/>
+                        </Button>
+                    </Tooltip>
+                </InputGroupItem>
+                {showEditor && <InputGroupItem>
+                    <ExpressionModalEditor name={property.name}
+                                           customCode={customCode}
+                                           showEditor={showEditor}
+                                           dark={dark}
+                                           dslLanguage={dslLanguage}
+                                           title="Java Class"
+                                           onClose={() => setShowEditor(false)}
+                                           onSave={(fieldId, value1) => {
+                                               propertyChanged(fieldId, value);
+                                               
InfrastructureAPI.onSaveCustomCode?.(value, value1);
+                                               setShowEditor(false)
+                                           }}/>
+                </InputGroupItem>}
+            </InputGroup>
         )
     }
 
diff --git a/karavan-space/src/designer/property/property/SelectField.tsx 
b/karavan-space/src/designer/property/property/SelectField.tsx
index 3f3affc0..ad4b1834 100644
--- a/karavan-space/src/designer/property/property/SelectField.tsx
+++ b/karavan-space/src/designer/property/property/SelectField.tsx
@@ -82,7 +82,7 @@ export function SelectField(props: Props) {
         setSelectOptions(newSelectOptions);
     }, [filterValue]);
 
-    const createItemId = (value: any) => `select-typeahead-${value.replace(' 
', '-')}`;
+    const createItemId = (value: any) => `select-typeahead-${value?.replace(' 
', '-')}`;
 
     const setActiveAndFocusedItem = (itemIndex: number) => {
         setFocusedItemIndex(itemIndex);

Reply via email to