Palash Gupta 9b8f7a091c
fix: step size is made dynamic (#2903)
* fix: step size is made dynamic

* test: get step test is added

* chore: alerts step is updated

* chore: query is updated

* chore: provider query is updated

* fix: user input is being take care of

* chore: query builder step interval is updated

* test: lib/getStep is updated

* test: test for getStep is updated

* fix: step interval is taken care when we change from top nav

* chore: while saving the dashboard query is updated

* chore: updated when selected widget is present

* chore: getStep is now multiple of 60 and test is updated accordingly

* chore: user input is overriden from global step

---------

Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
2023-06-28 15:19:52 +05:30

91 lines
2.0 KiB
TypeScript

import RouteTab from 'components/RouteTab';
import ROUTES from 'constants/routes';
import ResourceAttributesFilter from 'container/ResourceAttributesFilter';
import history from 'lib/history';
import { memo, useMemo } from 'react';
import { generatePath, useParams } from 'react-router-dom';
import { useLocation } from 'react-use';
import DBCall from './Tabs/DBCall';
import External from './Tabs/External';
import Overview from './Tabs/Overview';
function OverViewTab(): JSX.Element {
return <Overview />;
}
function DbCallTab(): JSX.Element {
return <DBCall />;
}
function ExternalTab(): JSX.Element {
return <External />;
}
function ServiceMetrics(): JSX.Element {
const { search } = useLocation();
const { servicename } = useParams<{ servicename: string }>();
const searchParams = new URLSearchParams(search);
const tab = searchParams.get('tab');
const overMetrics = 'Overview Metrics';
const dbCallMetrics = 'Database Calls';
const externalMetrics = 'External Calls';
const getActiveKey = (): string => {
switch (tab) {
case null: {
return overMetrics;
}
case dbCallMetrics: {
return dbCallMetrics;
}
case externalMetrics: {
return externalMetrics;
}
default: {
return overMetrics;
}
}
};
const activeKey = getActiveKey();
const routes = useMemo(
() => [
{
Component: OverViewTab,
name: overMetrics,
route: `${generatePath(ROUTES.SERVICE_METRICS, {
servicename,
})}?tab=${overMetrics}`,
},
{
Component: DbCallTab,
name: dbCallMetrics,
route: `${generatePath(ROUTES.SERVICE_METRICS, {
servicename,
})}?tab=${dbCallMetrics}`,
},
{
Component: ExternalTab,
name: externalMetrics,
route: `${generatePath(ROUTES.SERVICE_METRICS, {
servicename,
})}?tab=${externalMetrics}`,
},
],
[servicename],
);
return (
<>
<ResourceAttributesFilter />
<RouteTab routes={routes} history={history} activeKey={activeKey} />
</>
);
}
export default memo(ServiceMetrics);