From f31c50a41953a69fff76c4d8ef83aa02e52ad8fd Mon Sep 17 00:00:00 2001 From: Shrushti Polekar Date: Tue, 8 Apr 2025 11:03:45 +0530 Subject: [PATCH] Fix : Charts details display issue in summary panels. (#20666) * fix charts details display issue in summary panels * minor fix * added loader --- .../DataAssetSummaryPanel.tsx | 11 ++++++++--- .../SummaryList/SummaryList.component.tsx | 13 +++++++++++-- .../SummaryList/SummaryList.interface.ts | 1 + .../SummaryListItems.component.tsx | 6 +++++- .../ui/src/utils/EntitySummaryPanelUtils.tsx | 16 ++++++++++++---- 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanel/DataAssetSummaryPanel.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanel/DataAssetSummaryPanel.tsx index ed88d0d9bdf..3170b9581ec 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanel/DataAssetSummaryPanel.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanel/DataAssetSummaryPanel.tsx @@ -56,6 +56,8 @@ export const DataAssetSummaryPanel = ({ Record >({}); const [charts, setCharts] = useState([]); + const [chartsDetailsLoading, setChartsDetailsLoading] = + useState(false); const [entityPermissions, setEntityPermissions] = useState(null); const { isTourPage } = useTourProvider(); @@ -71,9 +73,10 @@ export const DataAssetSummaryPanel = ({ entityType === EntityType.DASHBOARD ? ({ ...dataAsset, charts } as any) : dataAsset, - highlights + highlights, + entityType === EntityType.DASHBOARD ? chartsDetailsLoading : false ); - }, [dataAsset, entityType, highlights]); + }, [dataAsset, entityType, highlights, charts, chartsDetailsLoading]); const isEntityDeleted = useMemo(() => dataAsset.deleted, [dataAsset]); @@ -105,12 +108,14 @@ export const DataAssetSummaryPanel = ({ }, [dataAsset?.fullyQualifiedName, entityPermissions]); const fetchChartsDetails = useCallback(async () => { + setChartsDetailsLoading(true); try { const chartDetails = await fetchCharts((dataAsset as Dashboard).charts); - setCharts(chartDetails); } catch (err) { // Error + } finally { + setChartsDetailsLoading(false); } }, [dataAsset]); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.component.tsx index ff923acd147..93e76b55543 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.component.tsx @@ -11,7 +11,7 @@ * limitations under the License. */ -import { Collapse, Row, Typography } from 'antd'; +import { Collapse, Row, Skeleton, Typography } from 'antd'; import { isEmpty, isUndefined } from 'lodash'; import React from 'react'; import { useTranslation } from 'react-i18next'; @@ -26,9 +26,18 @@ export default function SummaryList({ formattedEntityData, entityType, emptyPlaceholderText, -}: SummaryListProps) { + loading = false, +}: Readonly) { const { t } = useTranslation(); + if (loading) { + return ( + + + + ); + } + return ( {isEmpty(formattedEntityData) ? ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.interface.ts index 1b456fc8b87..b83cb5d00c2 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryList.interface.ts @@ -42,4 +42,5 @@ export interface SummaryListProps { formattedEntityData: BasicEntityInfo[]; entityType?: SummaryEntityType; emptyPlaceholderText?: string; + loading?: boolean; } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryListItems/SummaryListItems.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryListItems/SummaryListItems.component.tsx index d4e19366ef0..39d15e1d868 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryListItems/SummaryListItems.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/SummaryList/SummaryListItems/SummaryListItems.component.tsx @@ -46,7 +46,11 @@ function SummaryListItem({ iconClassName: 'm-r-xss', iconWidth: '14px', })} - {entityDetails.title} + + {entityDetails.title} + {entityDetails.type && ( { let childComponent; let heading; @@ -456,7 +457,9 @@ export const getEntityChildDetails = ( return ( <> - + - + - +