fix: list scroll with time updating (#3075)

This commit is contained in:
Yevhen Shevchenko 2023-07-08 07:27:34 +03:00 committed by GitHub
parent 2b3934b845
commit c72729f8bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -21,8 +21,10 @@ import { useQueryBuilder } from 'hooks/queryBuilder/useQueryBuilder';
import { useNotifications } from 'hooks/useNotifications'; import { useNotifications } from 'hooks/useNotifications';
import useUrlQueryData from 'hooks/useUrlQueryData'; import useUrlQueryData from 'hooks/useUrlQueryData';
import { getPaginationQueryData } from 'lib/newQueryBuilder/getPaginationQueryData'; 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 { generatePath, useHistory } from 'react-router-dom';
import { AppState } from 'store/reducers';
import { Dashboard } from 'types/api/dashboard/getAll'; import { Dashboard } from 'types/api/dashboard/getAll';
import { ILog } from 'types/api/logs/log'; import { ILog } from 'types/api/logs/log';
import { import {
@ -31,6 +33,7 @@ import {
Query, Query,
} from 'types/api/queryBuilder/queryBuilderData'; } from 'types/api/queryBuilder/queryBuilderData';
import { DataSource, StringOperators } from 'types/common/queryBuilder'; import { DataSource, StringOperators } from 'types/common/queryBuilder';
import { GlobalReducer } from 'types/reducer/globalTime';
import { ActionsWrapper, TabsStyled } from './LogsExplorerViews.styled'; import { ActionsWrapper, TabsStyled } from './LogsExplorerViews.styled';
@ -43,6 +46,12 @@ function LogsExplorerViews(): JSX.Element {
DEFAULT_PER_PAGE_VALUE, DEFAULT_PER_PAGE_VALUE,
); );
const { minTime } = useSelector<AppState, GlobalReducer>(
(state) => state.globalTime,
);
const currentMinTimeRef = useRef<number>(minTime);
// Context // Context
const { const {
currentQuery, currentQuery,
@ -320,7 +329,10 @@ function LogsExplorerViews(): JSX.Element {
}, [data]); }, [data]);
useEffect(() => { useEffect(() => {
if (requestData?.id !== stagedQuery?.id || isFetching) { if (
requestData?.id !== stagedQuery?.id ||
currentMinTimeRef.current !== minTime
) {
const newRequestData = getRequestData(stagedQuery, { const newRequestData = getRequestData(stagedQuery, {
page: 1, page: 1,
log: null, log: null,
@ -329,8 +341,9 @@ function LogsExplorerViews(): JSX.Element {
setLogs([]); setLogs([]);
setPage(1); setPage(1);
setRequestData(newRequestData); setRequestData(newRequestData);
currentMinTimeRef.current = minTime;
} }
}, [stagedQuery, requestData, getRequestData, pageSize, isFetching]); }, [stagedQuery, requestData, getRequestData, pageSize, minTime]);
const tabsItems: TabsProps['items'] = useMemo( const tabsItems: TabsProps['items'] = useMemo(
() => [ () => [