Palash Gupta ed65c92fc7
feat: layout is updated for logs-settings (#3220)
* feat: layout is updated

* feat:  layout is updated

* feat: layout is updated

* chore: types and build pipeline is fixed

---------

Co-authored-by: Vishal Sharma <makeavish786@gmail.com>
2023-08-03 12:52:39 +05:30

50 lines
908 B
TypeScript

import { Tabs, TabsProps } from 'antd';
import { RouteTabProps } from './types';
function RouteTab({
routes,
activeKey,
onChangeHandler,
history,
...rest
}: RouteTabProps & TabsProps): JSX.Element {
const onChange = (activeRoute: string): void => {
if (onChangeHandler) {
onChangeHandler();
}
const selectedRoute = routes.find((e) => e.key === activeRoute);
if (selectedRoute) {
history.push(selectedRoute.route);
}
};
const items = routes.map(({ Component, name, route, key }) => ({
label: name,
key,
tabKey: route,
children: <Component />,
}));
return (
<Tabs
onChange={onChange}
destroyInactiveTabPane
activeKey={activeKey}
defaultActiveKey={activeKey}
animated
items={items}
// eslint-disable-next-line react/jsx-props-no-spreading
{...rest}
/>
);
}
RouteTab.defaultProps = {
onChangeHandler: undefined,
};
export default RouteTab;