import React from 'react'; import { connect } from 'react-redux'; import NodesChart from '../charts/nodes-chart'; import NodesGrid from '../charts/nodes-grid'; import NodesResources from '../components/nodes-resources'; import NodesError from '../charts/nodes-error'; import DelayedShow from '../utils/delayed-show'; import { Loading, getNodeType } from './loading'; import { isTopologyNodeCountZero, isNodesDisplayEmpty, } from '../utils/topology-utils'; import { nodesLoadedSelector } from '../selectors/node-filters'; import { isGraphViewModeSelector, isTableViewModeSelector, isResourceViewModeSelector, } from '../selectors/topology'; import { TOPOLOGY_LOADER_DELAY } from '../constants/timer'; // TODO: The information that we already have available on the frontend should enable // us to determine which of these cases exactly is preventing us from seeing the nodes. const NODES_STATS_COUNT_ZERO_CAUSES = [ 'We haven\'t received any reports from probes recently. Are the probes properly connected?', 'Containers view only: you\'re not running Docker, or you don\'t have any containers', ]; const NODES_NOT_DISPLAYED_CAUSES = [ 'There are nodes, but they\'ve been filtered out by pinned searches in the top-left corner.', 'There are nodes, but they\'re currently hidden. Check the view options in the bottom-left if they allow for showing hidden nodes.', 'There are no nodes for this particular moment in time. Use the time travel feature at the bottom-right corner to explore different times.', ]; const renderCauses = causes => (