From 0a77c7ab85a936296a3927cf9162df33708567e4 Mon Sep 17 00:00:00 2001 From: Palash Gupta Date: Thu, 30 Nov 2023 18:41:26 +0530 Subject: [PATCH] fix: onRun Query offset is made zero (#4083) --- frontend/src/constants/query.ts | 1 + .../container/TracesExplorer/ListView/index.tsx | 5 +++-- .../container/TracesExplorer/TracesView/index.tsx | 5 +++-- frontend/src/hooks/queryPagination/config.ts | 2 -- .../hooks/queryPagination/useQueryPagination.ts | 5 +++-- frontend/src/providers/QueryBuilder.tsx | 14 ++++++++++++++ 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/frontend/src/constants/query.ts b/frontend/src/constants/query.ts index af7b76b2c4..d3bd2729d1 100644 --- a/frontend/src/constants/query.ts +++ b/frontend/src/constants/query.ts @@ -27,4 +27,5 @@ export enum QueryParams { viewName = 'viewName', viewKey = 'viewKey', expandedWidgetId = 'expandedWidgetId', + pagination = 'pagination', } diff --git a/frontend/src/container/TracesExplorer/ListView/index.tsx b/frontend/src/container/TracesExplorer/ListView/index.tsx index 4ff128b629..c9dd78df2f 100644 --- a/frontend/src/container/TracesExplorer/ListView/index.tsx +++ b/frontend/src/container/TracesExplorer/ListView/index.tsx @@ -1,11 +1,12 @@ import { ResizeTable } from 'components/ResizeTable'; import { LOCALSTORAGE } from 'constants/localStorage'; +import { QueryParams } from 'constants/query'; import { initialQueriesMap, PANEL_TYPES } from 'constants/queryBuilder'; import { REACT_QUERY_KEY } from 'constants/reactQueryKeys'; import { useOptionsMenu } from 'container/OptionsMenu'; import { useGetQueryRange } from 'hooks/queryBuilder/useGetQueryRange'; import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder'; -import { Pagination, URL_PAGINATION } from 'hooks/queryPagination'; +import { Pagination } from 'hooks/queryPagination'; import useDragColumns from 'hooks/useDragColumns'; import { getDraggedColumns } from 'hooks/useDragColumns/utils'; import useUrlQueryData from 'hooks/useUrlQueryData'; @@ -44,7 +45,7 @@ function ListView(): JSX.Element { ); const { queryData: paginationQueryData } = useUrlQueryData( - URL_PAGINATION, + QueryParams.pagination, ); const { data, isFetching, isError } = useGetQueryRange( diff --git a/frontend/src/container/TracesExplorer/TracesView/index.tsx b/frontend/src/container/TracesExplorer/TracesView/index.tsx index 3643e3c5e0..21fa41431c 100644 --- a/frontend/src/container/TracesExplorer/TracesView/index.tsx +++ b/frontend/src/container/TracesExplorer/TracesView/index.tsx @@ -1,10 +1,11 @@ import { Typography } from 'antd'; import { ResizeTable } from 'components/ResizeTable'; +import { QueryParams } from 'constants/query'; import { initialQueriesMap, PANEL_TYPES } from 'constants/queryBuilder'; import { REACT_QUERY_KEY } from 'constants/reactQueryKeys'; import { useGetQueryRange } from 'hooks/queryBuilder/useGetQueryRange'; import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder'; -import { Pagination, URL_PAGINATION } from 'hooks/queryPagination'; +import { Pagination } from 'hooks/queryPagination'; import useUrlQueryData from 'hooks/useUrlQueryData'; import { memo, useMemo } from 'react'; import { useSelector } from 'react-redux'; @@ -24,7 +25,7 @@ function TracesView(): JSX.Element { >((state) => state.globalTime); const { queryData: paginationQueryData } = useUrlQueryData( - URL_PAGINATION, + QueryParams.pagination, ); const { data, isLoading } = useGetQueryRange( diff --git a/frontend/src/hooks/queryPagination/config.ts b/frontend/src/hooks/queryPagination/config.ts index 72dc032051..0e45c7df5c 100644 --- a/frontend/src/hooks/queryPagination/config.ts +++ b/frontend/src/hooks/queryPagination/config.ts @@ -1,3 +1 @@ -export const URL_PAGINATION = 'pagination'; - export const DEFAULT_PER_PAGE_OPTIONS: number[] = [25, 50, 100, 200]; diff --git a/frontend/src/hooks/queryPagination/useQueryPagination.ts b/frontend/src/hooks/queryPagination/useQueryPagination.ts index 29cee3ecb8..bf3cc30bb4 100644 --- a/frontend/src/hooks/queryPagination/useQueryPagination.ts +++ b/frontend/src/hooks/queryPagination/useQueryPagination.ts @@ -1,8 +1,9 @@ +import { QueryParams } from 'constants/query'; import { ControlsProps } from 'container/Controls'; import useUrlQueryData from 'hooks/useUrlQueryData'; import { useCallback, useEffect, useMemo } from 'react'; -import { DEFAULT_PER_PAGE_OPTIONS, URL_PAGINATION } from './config'; +import { DEFAULT_PER_PAGE_OPTIONS } from './config'; import { Pagination } from './types'; import { checkIsValidPaginationData, @@ -22,7 +23,7 @@ const useQueryPagination = ( query: paginationQuery, queryData: paginationQueryData, redirectWithQuery: redirectWithCurrentPagination, - } = useUrlQueryData(URL_PAGINATION); + } = useUrlQueryData(QueryParams.pagination); const handleCountItemsPerPageChange = useCallback( (newLimit: Pagination['limit']) => { diff --git a/frontend/src/providers/QueryBuilder.tsx b/frontend/src/providers/QueryBuilder.tsx index 593bc642fd..bc0521fcbd 100644 --- a/frontend/src/providers/QueryBuilder.tsx +++ b/frontend/src/providers/QueryBuilder.tsx @@ -494,6 +494,20 @@ export function QueryBuilderProvider({ unit: query.unit || initialQueryState.unit, }; + const pagination = urlQuery.get(QueryParams.pagination); + + if (pagination) { + const parsedPagination = JSON.parse(pagination); + + urlQuery.set( + QueryParams.pagination, + JSON.stringify({ + limit: parsedPagination.limit, + offset: 0, + }), + ); + } + urlQuery.set( QueryParams.compositeQuery, encodeURIComponent(JSON.stringify(currentGeneratedQuery)),