diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCardNew/CommentCard.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCardNew/CommentCard.component.tsx
index d3e7651ab8f..f7b0273c2e0 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCardNew/CommentCard.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedCardNew/CommentCard.component.tsx
@@ -15,7 +15,7 @@ import classNames from 'classnames';
import { compare } from 'fast-json-patch';
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { Link } from 'react-router-dom';
-import { Thread } from '../../../generated/entity/feed/thread';
+import { Post, Thread } from '../../../generated/entity/feed/thread';
import { useUserProfile } from '../../../hooks/user-profile/useUserProfile';
import {
formatDateTime,
@@ -37,7 +37,7 @@ import ActivityFeedActions from '../Shared/ActivityFeedActions';
interface CommentCardInterface {
feed: Thread;
- post: any;
+ post: Post;
isLastReply: boolean;
closeFeedEditor: () => void;
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainDetailPage/DomainDetailPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainDetailPage/DomainDetailPage.component.tsx
index 9f48e479ae3..56abb38a547 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainDetailPage/DomainDetailPage.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Domain/DomainDetailPage/DomainDetailPage.component.tsx
@@ -87,7 +87,7 @@ const DomainDetailPage = () => {
}
};
- const handleDomainDelete = (id: string) => {
+ const handleDomainDelete = () => {
// Navigate back to domains listing page after deletion
navigate(ROUTES.DOMAIN);
};
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryStatusBadge/GlossaryStatusBadge.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryStatusBadge/GlossaryStatusBadge.component.tsx
index 07adcadebbb..0d53b853b7c 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryStatusBadge/GlossaryStatusBadge.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryStatusBadge/GlossaryStatusBadge.component.tsx
@@ -19,7 +19,10 @@ export const GlossaryStatusBadge = ({ status }: { status: EntityStatus }) => {
return (
-
+
);
};
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx
index 8ce66ca44a6..f9867ab7d2b 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx
@@ -774,7 +774,7 @@ const GlossaryTermTab = ({ isGlossary, className }: GlossaryTermTabProps) => {
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/LineageTable/LineageTable.tsx b/openmetadata-ui/src/main/resources/ui/src/components/LineageTable/LineageTable.tsx
index dd8277a4658..1967c7023df 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/LineageTable/LineageTable.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/LineageTable/LineageTable.tsx
@@ -629,7 +629,7 @@ const LineageTable: FC<{ entity: SourceType }> = ({ entity }) => {
? 'fromEntity'
: 'toEntity',
sorter: true,
- render: (record?: SearchSourceAlias) => (
+ render: (record?: SearchSourceAlias & { type: EntityType }) => (
= ({ entity }) => {
? 'fromEntity'
: 'toEntity',
sorter: true,
- render: (record?: SearchSourceAlias) => (
+ render: (record?: SearchSourceAlias & { type?: EntityType }) => (
{
return {
...antd,
- Modal: ({ children, open, onCancel, ...props }: any) =>
+ Modal: ({ children, open, ...props }: any) =>
open ? (
{children}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Applications/AppRunsHistory/AppRunsHistory.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Applications/AppRunsHistory/AppRunsHistory.test.tsx
index 97628f98317..3cac78541aa 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Applications/AppRunsHistory/AppRunsHistory.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Applications/AppRunsHistory/AppRunsHistory.test.tsx
@@ -114,7 +114,7 @@ jest.mock('../../../../utils/date-time/DateTimeUtils', () => ({
getEpochMillisForPastDays: jest.fn().mockReturnValue('startDay'),
getIntervalInMilliseconds: jest.fn().mockReturnValue('interval'),
formatDuration: jest.fn().mockReturnValue('formatDuration'),
- formatDurationToHHMMSS: jest.fn().mockImplementation((_ms) => {
+ formatDurationToHHMMSS: jest.fn().mockImplementation(() => {
// Return a consistent formatted duration for all cases
return '02:30:15';
}),
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx
index 58b059dc522..966b75464b8 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/Settings/Services/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx
@@ -18,6 +18,7 @@ import {
render,
screen,
} from '@testing-library/react';
+import { Status } from '../../../../../generated/entity/applications/appRunRecord';
import { IngestionPipeline } from '../../../../../generated/entity/services/ingestionPipelines/ingestionPipeline';
import { EXECUTION_RUNS, FAILURE } from '../../../../../mocks/Ingestion.mock';
import { mockDataInsightApplicationRun } from '../../../../../mocks/LogsViewerPage.mock';
@@ -438,7 +439,7 @@ describe('Test IngestionRecentRun component', () => {
const unorderedAppRuns = [
{
runId: 'app-run-2',
- status: 'Success',
+ status: Status.Success,
startTime: 1667307000,
timestamp: 1667307000,
endTime: 1667307003,
@@ -446,7 +447,7 @@ describe('Test IngestionRecentRun component', () => {
},
{
runId: 'app-run-1',
- status: 'Failed',
+ status: Status.Failed,
startTime: 1667301000,
timestamp: 1667301000,
endTime: 1667301003,
@@ -454,7 +455,7 @@ describe('Test IngestionRecentRun component', () => {
},
{
runId: 'app-run-3',
- status: 'Running',
+ status: Status.Running,
startTime: 1667309000,
timestamp: 1667309000,
endTime: 1667309003,
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/MUIAsyncTreeSelect.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/MUIAsyncTreeSelect.tsx
index 907ea582e63..74c8deb3c69 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/MUIAsyncTreeSelect.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/MUIAsyncTreeSelect.tsx
@@ -499,22 +499,25 @@ const MUIAsyncTreeSelect: FC
= ({
);
// Handle input blur to restore selected value if no new selection
- const handleInputBlur = useCallback(
- (e: React.FocusEvent) => {
- // Restore selected value in single-select if no new selection
- if (!multiple && selectedOptions.length > 0) {
- const selectedLabel = selectedOptions[0].label;
- if (inputValue !== selectedLabel) {
- setInputValue(selectedLabel);
- debouncedSetSearchTerm(''); // Clear search to show all options
- }
+ const handleInputBlur = useCallback(() => {
+ // Restore selected value in single-select if no new selection
+ if (!multiple && selectedOptions.length > 0) {
+ const selectedLabel = selectedOptions[0].label;
+ if (inputValue !== selectedLabel) {
+ setInputValue(selectedLabel);
+ debouncedSetSearchTerm(''); // Clear search to show all options
}
+ }
- // Call existing blur handler for dropdown management
- handleBlur(e);
- },
- [multiple, selectedOptions, inputValue, handleBlur, debouncedSetSearchTerm]
- );
+ // Call existing blur handler for dropdown management
+ handleBlur();
+ }, [
+ multiple,
+ selectedOptions,
+ inputValue,
+ handleBlur,
+ debouncedSetSearchTerm,
+ ]);
// Calculate if has clearable value
const hasClearableValue = multiple
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/atoms/TreeContent/TreeContent.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/atoms/TreeContent/TreeContent.tsx
index b3c10bb666f..30cbd922c65 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/atoms/TreeContent/TreeContent.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/atoms/TreeContent/TreeContent.tsx
@@ -23,13 +23,13 @@ export interface TreeContentProps {
error: string | null;
hasData: boolean;
children: ReactNode;
- selectedItems?: string[] | null;
+ selectedItems?: string | null;
expandedItems?: string[];
focusedItem?: string;
apiRef?: MutableRefObject;
loadingMessage?: string;
noDataMessage?: string;
- onNodeToggle?: SimpleTreeViewProps['onExpandedItemsChange'];
+ onNodeToggle?: SimpleTreeViewProps['onExpandedItemsChange'];
onFocusedItemChange?: (event: React.SyntheticEvent, itemId: string) => void;
onItemClick?: (event: React.MouseEvent, itemId: string) => void;
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeFocusManagement.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeFocusManagement.ts
index 8c5e1404d12..fa4b4c305ba 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeFocusManagement.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeFocusManagement.ts
@@ -35,24 +35,21 @@ export const useTreeFocusManagement = ({
}
}, [inputRef, disabled]);
- const handleBlur = useCallback(
- (e: React.FocusEvent) => {
- // Use setTimeout to check if the new focus is still within our component
- setTimeout(() => {
- const currentActiveElement = document.activeElement;
+ const handleBlur = useCallback(() => {
+ // Use setTimeout to check if the new focus is still within our component
+ setTimeout(() => {
+ const currentActiveElement = document.activeElement;
- // Close if focus moved outside our component
- if (
- anchorRef.current &&
- !anchorRef.current.contains(currentActiveElement) &&
- !(currentActiveElement as HTMLElement)?.closest('.MuiPopper-root')
- ) {
- onCloseDropdown?.();
- }
- }, 100);
- },
- [onCloseDropdown, anchorRef]
- );
+ // Close if focus moved outside our component
+ if (
+ anchorRef.current &&
+ !anchorRef.current.contains(currentActiveElement) &&
+ !(currentActiveElement as HTMLElement)?.closest('.MuiPopper-root')
+ ) {
+ onCloseDropdown?.();
+ }
+ }, 100);
+ }, [onCloseDropdown, anchorRef]);
const handleMouseDown = useCallback((e: React.MouseEvent) => {
e.preventDefault();
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeKeyboardNavigation.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeKeyboardNavigation.ts
index cad3e108650..670d61ac7a0 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeKeyboardNavigation.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIAsyncTreeSelect/hooks/useTreeKeyboardNavigation.ts
@@ -35,7 +35,6 @@ export const useTreeKeyboardNavigation = ({
getVisibleNodes,
expandedNodes,
toggleNodeExpansion,
- treeData,
inputRef,
handleNodeClick,
onOpenDropdown,
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUITagSuggestion/MUITagSuggestion.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/MUITagSuggestion/MUITagSuggestion.tsx
index 7c433bb5a69..c60e2bafcde 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUITagSuggestion/MUITagSuggestion.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUITagSuggestion/MUITagSuggestion.tsx
@@ -16,6 +16,7 @@ import { debounce, isArray, isEmpty } from 'lodash';
import { EntityTags } from 'Models';
import {
FC,
+ HtmlHTMLAttributes,
ReactNode,
useCallback,
useEffect,
@@ -62,6 +63,26 @@ const MUITagSuggestion: FC = ({
const [open, setOpen] = useState(false);
const { t } = useTranslation();
+ const fetchOptions = async (searchText: string) => {
+ setLoading(true);
+ try {
+ const response = await tagClassBase.getTags(searchText, 1, true);
+ const fetchedOptions = response?.data || [];
+ const mappedOptions: TagOption[] = fetchedOptions.map(
+ (opt: SelectOption) => ({
+ label: opt.label,
+ value: opt.value,
+ data: opt.data as TagLabel,
+ })
+ );
+ setOptions(mappedOptions);
+ } catch {
+ setOptions([]);
+ } finally {
+ setLoading(false);
+ }
+ };
+
const searchDebounced = useRef(
debounce(async (searchValue: string) => {
await fetchOptions(searchValue);
@@ -94,26 +115,6 @@ const MUITagSuggestion: FC = ({
}
}, [open]);
- const fetchOptions = async (searchText: string) => {
- setLoading(true);
- try {
- const response = await tagClassBase.getTags(searchText, 1, 20);
- const fetchedOptions = response?.data || [];
- const mappedOptions: TagOption[] = fetchedOptions.map(
- (opt: SelectOption) => ({
- label: opt.label,
- value: opt.value,
- data: opt.data as TagLabel,
- })
- );
- setOptions(mappedOptions);
- } catch (error) {
- setOptions([]);
- } finally {
- setLoading(false);
- }
- };
-
const handleInputChange = useCallback(
(_event: React.SyntheticEvent, newInputValue: string) => {
setInputValue(newInputValue);
@@ -122,11 +123,7 @@ const MUITagSuggestion: FC = ({
);
const handleChange = useCallback(
- (
- event: React.SyntheticEvent,
- newValue: (TagOption | string)[],
- reason: string
- ) => {
+ (_event: React.SyntheticEvent, newValue: (TagOption | string)[]) => {
if (isArray(newValue)) {
// Filter out string values from freeSolo
const optionValues = newValue.filter(
@@ -176,10 +173,10 @@ const MUITagSuggestion: FC = ({
ListboxProps={
{
key: `listbox-${memoizedOptions.length}`,
- } as any
+ } as HtmlHTMLAttributes
}
autoFocus={autoFocus}
- getOptionLabel={(option: TagOption | string) =>
+ getOptionLabel={(option) =>
typeof option === 'string' ? option : option.label
}
inputValue={inputValue}
@@ -213,7 +210,9 @@ const MUITagSuggestion: FC = ({
+ sx={{
+ color: option.data?.style?.color || undefined,
+ }}>
{option.label}
{(option.data?.displayName || option.data?.name) && (
@@ -224,8 +223,8 @@ const MUITagSuggestion: FC = ({
)}
- renderTags={(value: TagOption[], getTagProps) =>
- value.map((option: TagOption, index: number) => {
+ renderTags={(value, getTagProps) =>
+ value.map((option, index: number) => {
const chipProps = getTagProps({ index });
return (
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIUserTeamSelect/MUIUserTeamSelect.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIUserTeamSelect/MUIUserTeamSelect.tsx
index e907427739a..4867a795c22 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/MUIUserTeamSelect/MUIUserTeamSelect.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/MUIUserTeamSelect/MUIUserTeamSelect.tsx
@@ -14,7 +14,14 @@
import { Autocomplete, Box, Chip, TextField, useTheme } from '@mui/material';
import { XClose } from '@untitledui/icons';
import { debounce } from 'lodash';
-import { FC, useCallback, useEffect, useMemo, useState } from 'react';
+import {
+ FC,
+ SyntheticEvent,
+ useCallback,
+ useEffect,
+ useMemo,
+ useState,
+} from 'react';
import { useTranslation } from 'react-i18next';
import { ReactComponent as IconTeams } from '../../../assets/svg/teams-grey.svg';
import { PAGE_SIZE_MEDIUM } from '../../../constants/constants';
@@ -112,7 +119,7 @@ const MUIUserTeamSelect: FC = ({
users.map((user) => ({
label: getEntityName(user),
value: user.id,
- entity: user,
+ entity: user as unknown as EntityReference,
isTeam: false,
}))
);
@@ -144,7 +151,7 @@ const MUIUserTeamSelect: FC = ({
teams.map((team) => ({
label: getEntityName(team),
value: team.id,
- entity: team,
+ entity: team as unknown as EntityReference,
isTeam: true,
}))
);
@@ -190,7 +197,7 @@ const MUIUserTeamSelect: FC = ({
}, [open]);
const handleChange = (
- _event: any,
+ _event: SyntheticEvent,
newValue: string | OptionType | (string | OptionType)[] | null
) => {
if (!onChange) {
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/TagChip/TagChip.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/TagChip/TagChip.tsx
index 8d4b3abbea7..e165c020bfe 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/TagChip/TagChip.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/TagChip/TagChip.tsx
@@ -18,7 +18,7 @@ import { FC, ReactElement } from 'react';
export interface TagChipProps extends Omit {
label: string;
icon?: ReactElement;
- onDelete?: () => void;
+ onDelete?: (e: Event) => void;
size?: 'small' | 'medium' | 'large';
variant?: 'filled' | 'outlined' | 'blueGray';
tagColor?: string; // For the colored bar indicator
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/types.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/types.ts
index 3eb71ffbb97..6268eb0eaf7 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/types.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/types.ts
@@ -25,6 +25,7 @@ export interface TreeNode {
parent?: string;
allowSelection?: boolean;
lazyLoad?: boolean;
+ hasChildren?: boolean;
}
export interface TreeDataFetcherParams {
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/useAsyncTreeSelect.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/useAsyncTreeSelect.tsx
index cb583441063..4e65e9138e3 100644
--- a/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/useAsyncTreeSelect.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/components/common/atoms/asyncTreeSelect/useAsyncTreeSelect.tsx
@@ -163,20 +163,6 @@ export const useAsyncTreeSelect = (
[]
);
- // Utility function to determine if a node should lazy load
- const shouldNodeLazyLoad = useCallback(
- (node: TreeNode | null, componentLazyLoad: boolean): boolean => {
- if (!node) {
- return componentLazyLoad;
- }
-
- return (
- node.lazyLoad !== false && (node.lazyLoad === true || componentLazyLoad)
- );
- },
- []
- );
-
// Handle node expansion
const handleNodeExpansion = useCallback(
(nodeId: string) => {
diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/Customize.constants.ts b/openmetadata-ui/src/main/resources/ui/src/constants/Customize.constants.ts
index ea2bb90c98e..22e8f4c1052 100644
--- a/openmetadata-ui/src/main/resources/ui/src/constants/Customize.constants.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/constants/Customize.constants.ts
@@ -10,10 +10,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+import { TFunctionKeys } from 'i18next';
import { EntityTabs, EntityType } from '../enums/entity.enum';
import { PageType } from '../generated/system/ui/page';
-export const TAB_LABEL_MAP: Record = {
+export const TAB_LABEL_MAP = {
[EntityTabs.OVERVIEW]: 'label.overview',
[EntityTabs.GLOSSARY_TERMS]: 'label.glossary-term-plural',
[EntityTabs.ASSETS]: 'label.asset-plural',
@@ -60,7 +61,7 @@ export const TAB_LABEL_MAP: Record = {
[EntityTabs.CONTRACT]: 'label.contract',
[EntityTabs.DIRECTORIES]: 'label.directory-plural',
[EntityTabs.WORKSHEETS]: 'label.worksheet-plural',
-} as const;
+} as Record;
export type CustomizeEntityType =
| EntityType.TABLE
diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/LeftSidebar.constants.ts b/openmetadata-ui/src/main/resources/ui/src/constants/LeftSidebar.constants.ts
index 8452461d05a..365aeb84b89 100644
--- a/openmetadata-ui/src/main/resources/ui/src/constants/LeftSidebar.constants.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/constants/LeftSidebar.constants.ts
@@ -33,7 +33,14 @@ import { DataInsightTabs } from '../interface/data-insight.interface';
import { createIconWithStroke } from '../utils/IconUtils';
import { PLACEHOLDER_ROUTE_TAB, ROUTES } from './constants';
-const DataProductIcon = createIconWithStroke(Cube01, 1.2);
+const DataProductIcon = createIconWithStroke(
+ Cube01 as React.ComponentType<{
+ size?: number;
+ strokeWidth?: number;
+ style?: React.CSSProperties;
+ }>,
+ 1.2
+);
export const SIDEBAR_NESTED_KEYS = {
[ROUTES.OBSERVABILITY_ALERTS]: ROUTES.OBSERVABILITY_ALERTS,
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/DataQuality/DataQualityClassBase.ts b/openmetadata-ui/src/main/resources/ui/src/pages/DataQuality/DataQualityClassBase.ts
index 852cfefd591..ba6b2868983 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/DataQuality/DataQualityClassBase.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/DataQuality/DataQualityClassBase.ts
@@ -80,6 +80,7 @@ class DataQualityClassBase {
}
public getExportDataQualityDashboardButton(
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
_activeTab: DataQualityPageTabs
): React.ReactNode {
return null;
diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/EntityImport/BulkEntityImportPage/BulkEntityImportPage.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/EntityImport/BulkEntityImportPage/BulkEntityImportPage.tsx
index 8b2e9af9986..b23170ba332 100644
--- a/openmetadata-ui/src/main/resources/ui/src/pages/EntityImport/BulkEntityImportPage/BulkEntityImportPage.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/pages/EntityImport/BulkEntityImportPage/BulkEntityImportPage.tsx
@@ -130,7 +130,7 @@ const BulkEntityImportPage = () => {
entityType,
fqn
);
- setEntity(response);
+ setEntity(response as DataAssetsHeaderProps['dataAsset']);
} catch {
// not show error here
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/rest/glossaryAPI.ts b/openmetadata-ui/src/main/resources/ui/src/rest/glossaryAPI.ts
index b8cf1587068..42c776f5311 100644
--- a/openmetadata-ui/src/main/resources/ui/src/rest/glossaryAPI.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/rest/glossaryAPI.ts
@@ -318,7 +318,7 @@ export const searchGlossaryTermsPaginated = async (
offset = 0,
fields?: string
) => {
- const params: Record = {
+ const params: Record = {
limit,
offset,
};
diff --git a/openmetadata-ui/src/main/resources/ui/src/rest/lineageAPI.ts b/openmetadata-ui/src/main/resources/ui/src/rest/lineageAPI.ts
index 3bebd782c1c..6daa6776d22 100644
--- a/openmetadata-ui/src/main/resources/ui/src/rest/lineageAPI.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/rest/lineageAPI.ts
@@ -36,7 +36,7 @@ export const updateLineageEdge = async (edge: AddLineage) => {
export const exportLineageAsync = async (
fqn: string,
- entityType: string,
+ entityType?: string,
config?: LineageConfig,
queryFilter?: string
) => {
diff --git a/openmetadata-ui/src/main/resources/ui/src/test/unit/mocks/reactColumnResize.mock.js b/openmetadata-ui/src/main/resources/ui/src/test/unit/mocks/reactColumnResize.mock.js
index 81d8282d54c..9d8fbab9fee 100644
--- a/openmetadata-ui/src/main/resources/ui/src/test/unit/mocks/reactColumnResize.mock.js
+++ b/openmetadata-ui/src/main/resources/ui/src/test/unit/mocks/reactColumnResize.mock.js
@@ -10,9 +10,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import React from 'react';
/* eslint-disable */
+const React = require('react');
module.exports = {
useAntdColumnResize: jest.fn().mockImplementation((hookDataFunction) => {
return {
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx
index fdd83d99880..510721f9f60 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityLineageUtils.tsx
@@ -107,6 +107,16 @@ import { t } from './i18next/LocalUtil';
import { jsonToCSV } from './StringsUtils';
import { showErrorToast } from './ToastUtils';
+interface LayoutedElements {
+ node: Array<
+ Node & {
+ nodeHeight: number;
+ childrenHeight: number;
+ }
+ >;
+ edge: Edge[];
+}
+
export const MAX_LINEAGE_LENGTH = 20;
export const encodeLineageHandles = (handle: string) => {
@@ -176,7 +186,7 @@ export const getLayoutedElements = (
isExpanded = true,
expandAllColumns = false,
columnsHavingLineage: string[] = []
-) => {
+): LayoutedElements => {
const Graph = graphlib.Graph;
const dagreGraph = new Graph();
dagreGraph.setDefaultEdgeLabel(() => ({}));
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtilClassBase.ts b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtilClassBase.ts
index a90c2213559..bb79d78f9f2 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtilClassBase.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtilClassBase.ts
@@ -490,6 +490,7 @@ class EntityUtilClassBase {
}
}
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
public getEntityFloatingButton(_: EntityType): FC | null {
return null;
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.test.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.test.tsx
index 3c7c7353deb..c1b189a212a 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.test.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityUtils.test.tsx
@@ -325,15 +325,15 @@ describe('EntityUtils unit tests', () => {
{ text: null, searchText: 'test', expected: '' },
{ text: 'mockText', searchText: null, expected: 'mockText' },
{ text: null, searchText: null, expected: '' },
- { text: 0 as any, searchText: '', expected: 0 },
- { text: false as any, searchText: '', expected: false },
+ { text: 0, searchText: '', expected: 0 },
+ { text: false, searchText: '', expected: false },
];
it.each(falsyTestCases)(
'should return expected when text or searchText is null or falsy',
({ text, searchText, expected }) => {
const result = highlightSearchText(
- text ?? undefined,
+ (text as string) ?? undefined,
searchText ?? undefined
);
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/GlossaryUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/GlossaryUtils.tsx
index 3e62d3218be..85df2c4878f 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/GlossaryUtils.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/GlossaryUtils.tsx
@@ -498,14 +498,6 @@ export const getGlossaryWidgetFromKey = (widget: WidgetConfig) => {
);
};
-export const getAllExpandableKeys = (terms: ModifiedGlossary[]): string[] => {
- const keys: string[] = [];
-
- processTerms(terms, keys);
-
- return keys;
-};
-
const processTerms = (termList: ModifiedGlossary[], keys: string[]) => {
termList.forEach((term) => {
if (
@@ -520,3 +512,11 @@ const processTerms = (termList: ModifiedGlossary[], keys: string[]) => {
}
});
};
+
+export const getAllExpandableKeys = (terms: ModifiedGlossary[]): string[] => {
+ const keys: string[] = [];
+
+ processTerms(terms, keys);
+
+ return keys;
+};
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/IconUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/IconUtils.tsx
index 40c09f1f4c3..de218e18c56 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/IconUtils.tsx
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/IconUtils.tsx
@@ -54,7 +54,7 @@ import {
Users01,
XClose,
} from '@untitledui/icons';
-import { ComponentType } from 'react';
+import { ComponentType, FC } from 'react';
// Map of icon names to their components
export const ICON_MAP: Record<
@@ -179,7 +179,7 @@ export const renderIcon = (
* @param entityType - The type of entity
* @returns The icon component
*/
-export const getDefaultIconForEntityType = (entityType?: string) => {
+export const getDefaultIconForEntityType = (entityType?: string): FC => {
if (entityType === 'dataProduct') {
return Cube01;
}
diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtilClassBase.ts b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtilClassBase.ts
index 892873046fb..0e61e2e197f 100644
--- a/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtilClassBase.ts
+++ b/openmetadata-ui/src/main/resources/ui/src/utils/ServiceUtilClassBase.ts
@@ -284,7 +284,8 @@ class ServiceUtilClassBase {
};
}
- public getServiceExtraInfo(_data?: ServicesType): any {
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ public getServiceExtraInfo(_data?: ServicesType) {
return null;
}
@@ -826,6 +827,7 @@ class ServiceUtilClassBase {
return getDriveConfig(type);
}
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
public getInsightsTabWidgets(_: ServiceTypes) {
const widgets: Record> = {
AgentsStatusWidget,