diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.interface.ts index 5f7a50a3e39..0fff5f6b9a1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.interface.ts @@ -30,6 +30,7 @@ export interface DataAssetAsyncSelectListProps { id?: string; className?: string; placeholder?: string; + value?: DataAssetOption | DataAssetOption[] | string | string[]; debounceTimeout?: number; defaultValue?: string[]; initialOptions?: DataAssetOption[]; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.test.tsx index 16ea1a3134f..0bafa87351d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.test.tsx @@ -214,6 +214,30 @@ describe('DataAssetAsyncSelectList', () => { expect(screen.getByText(placeholder)).toBeInTheDocument(); }); + it("should render the default value when there's a default value and initial option", async () => { + const defaultValue = ['1']; + const initialOptions: DataAssetOption[] = [ + { + displayName: 'Test', + label: 'Test', + reference: { id: '1', type: 'table' }, + value: '1', + }, + ]; + + await act(async () => { + render( + + ); + }); + + expect(screen.getByText('Test')).toBeInTheDocument(); + }); + it("should render the default value when there's a value and initial option", async () => { const defaultValue = ['1']; const initialOptions: DataAssetOption[] = [ diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.tsx index 75c618eba9f..c16ae81d1eb 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataAssets/DataAssetAsyncSelectList/DataAssetAsyncSelectList.tsx @@ -12,7 +12,7 @@ */ import { Select, SelectProps, Space } from 'antd'; import { AxiosError } from 'axios'; -import { debounce } from 'lodash'; +import { debounce, isArray, isString } from 'lodash'; import React, { FC, useCallback, useMemo, useRef, useState } from 'react'; import { PAGE_SIZE } from '../../../constants/constants'; import { EntityType } from '../../../enums/entity.enum'; @@ -40,6 +40,7 @@ const DataAssetAsyncSelectList: FC = ({ debounceTimeout = 800, initialOptions, searchIndex = SearchIndex.ALL, + value: selectedValue, ...props }) => { const { @@ -216,8 +217,18 @@ const DataAssetAsyncSelectList: FC = ({ } }; + const internalValue = useMemo(() => { + if (isString(selectedValue) || isArray(selectedValue)) { + return selectedValue as string | string[]; + } + const selectedOption = selectedValue as DataAssetOption; + + return selectedOption?.value as string; + }, [mode, selectedValue]); + return ( = ({ optionLabelProp="displayName" options={optionList} style={{ width: '100%' }} + value={internalValue} onBlur={() => { handlePageChange(1); setSearchValue(''); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/CustomPropertyTable/PropertyValue.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/CustomPropertyTable/PropertyValue.tsx index 43fb0a9bb93..1aaeeffb204 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/CustomPropertyTable/PropertyValue.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/CustomPropertyTable/PropertyValue.tsx @@ -738,7 +738,9 @@ export const PropertyValue: FC = ({ + {['user', 'team'].includes(item.type) ? (