Skip to content

Commit 028fa59

Browse files
committed
[#12240] Display message when heatmap API error occurs
1 parent ef6a356 commit 028fa59

File tree

5 files changed

+32
-7
lines changed

5 files changed

+32
-7
lines changed

web-frontend/src/main/v3/packages/ui/src/components/Heatmap/HeatmapFetcher.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
useGetHeatmapAppData,
77
} from '@pinpoint-fe/ui/src/hooks';
88
import { APP_SETTING_KEYS, GetHeatmapAppData } from '@pinpoint-fe/ui/src/constants';
9+
import { useTranslation } from 'react-i18next';
910

1011
const DefaultAxisY = [0, 10000];
1112

@@ -14,6 +15,7 @@ export type HeatmapFetcherProps = {
1415
} & Pick<HeatmapChartCoreProps, 'toolbarOption' | 'nodeData'>;
1516

1617
export const HeatmapFetcher = ({ nodeData, agentId, ...props }: HeatmapFetcherProps) => {
18+
const { t } = useTranslation();
1719
const { dateRange } = useServerMapSearchParameters();
1820
const [setting] = useStoragedSetting(APP_SETTING_KEYS.HEATMAP_SETTING);
1921

@@ -25,7 +27,7 @@ export const HeatmapFetcher = ({ nodeData, agentId, ...props }: HeatmapFetcherPr
2527
maxElapsedTime: Number(setting?.yMax) || DefaultAxisY[1],
2628
agentId: agentId,
2729
});
28-
const { data, isLoading } = useGetHeatmapAppData(parameters);
30+
const { data, isLoading, error } = useGetHeatmapAppData(parameters);
2931

3032
React.useEffect(() => {
3133
setParameters({
@@ -45,5 +47,26 @@ export const HeatmapFetcher = ({ nodeData, agentId, ...props }: HeatmapFetcherPr
4547
agentId,
4648
]);
4749

48-
return <HeatmapChartCore isLoading={isLoading} data={data} nodeData={nodeData} {...props} />;
50+
return (
51+
<div className="relative w-full h-full">
52+
{error && (
53+
<div className="absolute inset-0 z-[1000] flex items-center justify-center">
54+
<div className="absolute inset-0 opacity-50 bg-background"></div>
55+
<div className="z-10 text-red-500">
56+
{t('SERVER_MAP.HEATMAP_API_ERROR_MESSAGE')
57+
.split('\n')
58+
.map((txt, i) => (
59+
<p key={i}>{txt}</p>
60+
))}
61+
</div>
62+
</div>
63+
)}
64+
<HeatmapChartCore
65+
isLoading={isLoading}
66+
data={data || ({} as GetHeatmapAppData.Response)}
67+
nodeData={nodeData}
68+
{...props}
69+
/>
70+
</div>
71+
);
4972
};

web-frontend/src/main/v3/packages/ui/src/components/Heatmap/core/HeatmapChart.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ const HeatmapChart = React.forwardRef(
151151

152152
const xAxisData = heatmapData?.map((row) => String(row.timestamp)) || [];
153153
const yAxisData =
154-
heatmapData?.[heatmapData?.length - 1].cellDataList
154+
heatmapData?.[heatmapData?.length - 1]?.cellDataList
155155
?.map((cell) => String(cell.elapsedTime))
156156
?.filter((yValue) => Number(yValue) >= setting.yMin && Number(yValue) <= setting.yMax) ||
157157
[];

web-frontend/src/main/v3/packages/ui/src/constants/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
"SELECT_URL_INFO": "Select a path info below"
5656
},
5757
"SERVER_MAP": {
58-
"SCATTER_CHART_STATIC_WARN": "To view the scatter chart by agent,\nplease switch the heatmap to a scatter chart."
58+
"SCATTER_CHART_STATIC_WARN": "To view the scatter chart by agent,\nplease switch the heatmap to a scatter chart.",
59+
"HEATMAP_API_ERROR_MESSAGE": "If the heatmap call error persists,\nplease refer to the scatter chart."
5960
},
6061
"TRANSACTION_LIST": {
6162
"SELECT_TRANSACTION": "Select your transaction",

web-frontend/src/main/v3/packages/ui/src/constants/locales/ko.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@
5555
"SELECT_URL_INFO": "아래에서 Path 정보를 선택하세요."
5656
},
5757
"SERVER_MAP": {
58-
"SCATTER_CHART_STATIC_WARN": "Agent별 scatter chart를 보기 위해\nheatmap을 scatter chart로 변경해 주세요."
58+
"SCATTER_CHART_STATIC_WARN": "Agent별 scatter chart를 보기 위해\nheatmap을 scatter chart로 변경해 주세요.",
59+
"HEATMAP_API_ERROR_MESSAGE": "Heatmap 호출 에러가 반복될 경우,\nscatter 차트를 참고해 주세요."
5960
},
6061
"TRANSACTION_LIST": {
6162
"SELECT_TRANSACTION": "Transaction을 선택하세요.",

web-frontend/src/main/v3/packages/ui/src/hooks/api/useGetHeatmapAppData.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { queryFn } from './reactQueryHelper';
66

77
export const useGetHeatmapAppData = (parameters: GetHeatmapAppData.Parameters) => {
88
const queryString = `?${convertParamsToQueryString(parameters)}`;
9-
const { data, isLoading, refetch } = useQuery<GetHeatmapAppData.Response>({
9+
const { data, isLoading, refetch, error } = useQuery<GetHeatmapAppData.Response>({
1010
queryKey: [END_POINTS.HEATMAP_APP_DATA, parameters],
1111
queryFn: queryFn(`${END_POINTS.HEATMAP_APP_DATA}${queryString}`),
1212
enabled: !!queryString,
1313
});
14-
return { data, isLoading, refetch };
14+
return { data, isLoading, refetch, error };
1515
};

0 commit comments

Comments
 (0)