import React from 'react'; import { connect } from 'react-redux'; import classNames from 'classnames'; import MetricSelector from './metric-selector'; import { trackMixpanelEvent } from '../utils/tracking-utils'; import { setGraphView, setTableView, setResourceView } from '../actions/app-actions'; import { availableMetricsSelector } from '../selectors/node-metric'; import { isResourceViewModeSelector, resourceViewAvailableSelector, } from '../selectors/topology'; import { GRAPH_VIEW_MODE, TABLE_VIEW_MODE, RESOURCE_VIEW_MODE, } from '../constants/naming'; class ViewModeSelector extends React.Component { componentWillReceiveProps(nextProps) { if (nextProps.isResourceViewMode && !nextProps.hasResourceView) { nextProps.setGraphView(); } } renderItem(icons, label, viewMode, setViewModeAction, isEnabled = true) { const isSelected = (this.props.topologyViewMode === viewMode); const className = classNames('view-mode-selector-action', { 'view-mode-selector-action-selected': isSelected, }); const onClick = () => { trackMixpanelEvent('scope.layout.selector.click', { layout: viewMode, topologyId: this.props.currentTopology.get('id'), parentTopologyId: this.props.currentTopology.get('parentId'), }); setViewModeAction(); }; return (