import { Typography } from 'antd'; import LogItem from 'components/Logs/LogItem'; import Spinner from 'components/Spinner'; import React, { memo, useCallback, useMemo } from 'react'; import { useSelector } from 'react-redux'; import { Virtuoso } from 'react-virtuoso'; import { AppState } from 'store/reducers'; import { ILogsReducer } from 'types/reducer/logs'; import { Container, Heading } from './styles'; function LogsTable(): JSX.Element { const { logs, isLoading, liveTail } = useSelector( (state) => state.logs, ); const isLiveTail = useMemo(() => logs.length === 0 && liveTail === 'PLAYING', [ logs?.length, liveTail, ]); const isNoLogs = useMemo(() => logs.length === 0 && liveTail === 'STOPPED', [ logs?.length, liveTail, ]); const getItemContent = useCallback( (index: number): JSX.Element => { const log = logs[index]; return ; }, [logs], ); if (isLoading) { return ; } return ( Event {isLiveTail && Getting live logs...} {isNoLogs && No log lines found} ); } export default memo(LogsTable);