From c72729f8bc9aafd5caaf5e2364e5c8e12c66a2e7 Mon Sep 17 00:00:00 2001 From: Yevhen Shevchenko <90138953+yeshev@users.noreply.github.com> Date: Sat, 8 Jul 2023 07:27:34 +0300 Subject: [PATCH] fix: list scroll with time updating (#3075) --- .../src/container/LogsExplorerViews/index.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/frontend/src/container/LogsExplorerViews/index.tsx b/frontend/src/container/LogsExplorerViews/index.tsx index 1875884c41..082365d347 100644 --- a/frontend/src/container/LogsExplorerViews/index.tsx +++ b/frontend/src/container/LogsExplorerViews/index.tsx @@ -21,8 +21,10 @@ import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder'; import { useNotifications } from 'hooks/useNotifications'; import useUrlQueryData from 'hooks/useUrlQueryData'; import { getPaginationQueryData } from 'lib/newQueryBuilder/getPaginationQueryData'; -import { memo, useCallback, useEffect, useMemo, useState } from 'react'; +import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useSelector } from 'react-redux'; import { generatePath, useHistory } from 'react-router-dom'; +import { AppState } from 'store/reducers'; import { Dashboard } from 'types/api/dashboard/getAll'; import { ILog } from 'types/api/logs/log'; import { @@ -31,6 +33,7 @@ import { Query, } from 'types/api/queryBuilder/queryBuilderData'; import { DataSource, StringOperators } from 'types/common/queryBuilder'; +import { GlobalReducer } from 'types/reducer/globalTime'; import { ActionsWrapper, TabsStyled } from './LogsExplorerViews.styled'; @@ -43,6 +46,12 @@ function LogsExplorerViews(): JSX.Element { DEFAULT_PER_PAGE_VALUE, ); + const { minTime } = useSelector( + (state) => state.globalTime, + ); + + const currentMinTimeRef = useRef(minTime); + // Context const { currentQuery, @@ -320,7 +329,10 @@ function LogsExplorerViews(): JSX.Element { }, [data]); useEffect(() => { - if (requestData?.id !== stagedQuery?.id || isFetching) { + if ( + requestData?.id !== stagedQuery?.id || + currentMinTimeRef.current !== minTime + ) { const newRequestData = getRequestData(stagedQuery, { page: 1, log: null, @@ -329,8 +341,9 @@ function LogsExplorerViews(): JSX.Element { setLogs([]); setPage(1); setRequestData(newRequestData); + currentMinTimeRef.current = minTime; } - }, [stagedQuery, requestData, getRequestData, pageSize, isFetching]); + }, [stagedQuery, requestData, getRequestData, pageSize, minTime]); const tabsItems: TabsProps['items'] = useMemo( () => [