import Table, { ColumnsType } from 'antd/lib/table'; import localStorageGet from 'api/browser/localstorage/get'; import localStorageSet from 'api/browser/localstorage/set'; import { SKIP_ONBOARDING } from 'constants/onboarding'; import ROUTES from 'constants/routes'; import React, { useState } from 'react'; import { useSelector } from 'react-redux'; import { Link, useLocation } from 'react-router-dom'; import { AppState } from 'store/reducers'; import { ServicesList } from 'types/api/metrics/getService'; import MetricReducer from 'types/reducer/metrics'; import SkipBoardModal from './SkipOnBoardModal'; import { Container, Name } from './styles'; function Metrics(): JSX.Element { const { search } = useLocation(); const [skipOnboarding, setSkipOnboarding] = useState( localStorageGet(SKIP_ONBOARDING) === 'true', ); const { services, loading, error } = useSelector( (state) => state.metrics, ); const onContinueClick = (): void => { localStorageSet(SKIP_ONBOARDING, 'true'); setSkipOnboarding(true); }; if ( services.length === 0 && loading === false && !skipOnboarding && error === true ) { return ; } const columns: ColumnsType = [ { title: 'Application', dataIndex: 'serviceName', key: 'serviceName', render: (text: string): JSX.Element => ( {text} ), }, { title: 'P99 latency (in ms)', dataIndex: 'p99', key: 'p99', sorter: (a: DataProps, b: DataProps): number => a.p99 - b.p99, render: (value: number): string => (value / 1000000).toFixed(2), }, { title: 'Error Rate (% of requests)', dataIndex: 'errorRate', key: 'errorRate', sorter: (a: DataProps, b: DataProps): number => a.errorRate - b.errorRate, render: (value: number): string => value.toFixed(2), }, { title: 'Requests Per Second', dataIndex: 'callRate', key: 'callRate', sorter: (a: DataProps, b: DataProps): number => a.callRate - b.callRate, render: (value: number): string => value.toFixed(2), }, ]; return ( ); } type DataProps = ServicesList; export default Metrics;