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

View File

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

View File

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