import AppBar from '@material-ui/core/AppBar'; import ConfigureProfilesMsg from './ConfigureProfilesMsg.jsx'; import Paper from '@material-ui/core/Paper'; import PropTypes from 'prop-types'; import QueryToCliCmd from './QueryToCliCmd.jsx'; import React from 'react'; import Tab from '@material-ui/core/Tab'; import Tabs from '@material-ui/core/Tabs'; import TopModule from './TopModule.jsx'; import TopRoutesModule from './TopRoutesModule.jsx'; import _isEmpty from 'lodash/isEmpty'; import _noop from 'lodash/noop'; import { withStyles } from '@material-ui/core/styles'; const styles = theme => ({ root: { flexGrow: 1, backgroundColor: theme.palette.background.paper, marginBottom: theme.spacing(3), }, }); class TopRoutesTabs extends React.Component { constructor(props) { super(props); this.state = { value: 0, }; } handleChange = (_, value) => { this.setState({ value }); }; renderTopComponent() { const { disableTop, query, pathPrefix, updateUnmeshedSources } = this.props; if (disableTop) { return null; } const topQuery = { resource: `${query.resourceType}/${query.resourceName}`, namespace: query.namespace, }; return ( ); } renderRoutesComponent() { const { query } = this.props; if (_isEmpty(query)) { return ; } const routesQuery = { resource_name: query.resourceName, resource_type: query.resourceType, namespace: query.namespace, }; const resource = `${query.resourceType}/${query.resourceName}`; return ( ); } render() { const { classes } = this.props; const { value } = this.state; return ( {value === 0 && this.renderTopComponent()} {value === 1 && this.renderRoutesComponent()} ); } } TopRoutesTabs.propTypes = { disableTop: PropTypes.bool, pathPrefix: PropTypes.string.isRequired, query: PropTypes.shape({ namespace: PropTypes.string, resourceType: PropTypes.string, resourceName: PropTypes.string, }), theme: PropTypes.shape({}).isRequired, updateUnmeshedSources: PropTypes.func, }; TopRoutesTabs.defaultProps = { disableTop: false, query: {}, updateUnmeshedSources: _noop, }; export default withStyles(styles, { withTheme: true })(TopRoutesTabs);