fix: added safety checks for query data (#8088)

This commit is contained in:
SagarRajput-7 2025-05-28 21:41:24 +05:30 committed by GitHub
parent f487f088bd
commit 5a602bbeb7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 16 additions and 9 deletions

View File

@ -191,8 +191,9 @@ function GridCardGraph({
const isLogsQuery = useMemo(
() =>
requestData.query.builder.queryData.every(
(query) => query.dataSource === DataSource.LOGS,
requestData?.query?.builder?.queryData?.length > 0 &&
requestData?.query?.builder?.queryData?.every(
(query) => query?.dataSource === DataSource.LOGS,
),
[requestData.query],
);
@ -203,7 +204,7 @@ function GridCardGraph({
variables: getDashboardVariables(variables),
selectedTime: widget.timePreferance || 'GLOBAL_TIME',
globalSelectedInterval:
widget.panelTypes === PANEL_TYPES.LIST && isLogsQuery
widget?.panelTypes === PANEL_TYPES.LIST && isLogsQuery
? 'custom'
: globalSelectedInterval,
start: customTimeRange?.startTime || start,

View File

@ -108,7 +108,7 @@ function LogsPanelComponent({
...prev,
tableParams: {
pagination: {
limit: widget.query.builder.queryData[0].limit || 0,
limit: widget.query?.builder?.queryData[0]?.limit || 0,
offset: newOffset < 0 ? 0 : newOffset,
},
},

View File

@ -105,9 +105,11 @@ function NewWidget({ selectedGraph }: NewWidgetProps): JSX.Element {
GlobalReducer
>((state) => state.globalTime);
const isLogsQuery = currentQuery.builder.queryData.every(
(query) => query.dataSource === DataSource.LOGS,
);
const isLogsQuery =
currentQuery?.builder?.queryData?.length > 0 &&
currentQuery?.builder?.queryData?.every(
(query) => query?.dataSource === DataSource.LOGS,
);
const customGlobalSelectedInterval = useMemo(
() =>
@ -358,7 +360,9 @@ function NewWidget({ selectedGraph }: NewWidgetProps): JSX.Element {
// this has been moved here from the left container
const [requestData, setRequestData] = useState<GetQueryResultsProps>(() => {
const updatedQuery = cloneDeep(stagedQuery || initialQueriesMap.metrics);
updatedQuery.builder.queryData[0].pageSize = 10;
if (updatedQuery?.builder?.queryData?.[0]) {
updatedQuery.builder.queryData[0].pageSize = 10;
}
if (selectedWidget) {
if (selectedGraph === PANEL_TYPES.LIST) {
@ -406,7 +410,9 @@ function NewWidget({ selectedGraph }: NewWidgetProps): JSX.Element {
if (stagedQuery) {
setIsLoadingPanelData(false);
const updatedStagedQuery = cloneDeep(stagedQuery);
updatedStagedQuery.builder.queryData[0].pageSize = 10;
if (updatedStagedQuery?.builder?.queryData?.[0]) {
updatedStagedQuery.builder.queryData[0].pageSize = 10;
}
setRequestData((prev) => ({
...prev,
selectedTime: selectedTime.enum || prev.selectedTime,