import React, { PureComponent } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { ExploreId, ExploreQueryParams } from 'app/types/explore'; import { ErrorBoundaryAlert } from '@grafana/ui'; import { lastSavedUrl, resetExploreAction, richHistoryUpdatedAction } from './state/main'; import { getRichHistory } from '../../core/utils/richHistory'; import { ExplorePaneContainer } from './ExplorePaneContainer'; import { GrafanaRouteComponentProps } from 'app/core/navigation/types'; import { Branding } from '../../core/components/Branding/Branding'; import { getNavModel } from '../../core/selectors/navModel'; import { StoreState } from 'app/types'; interface RouteProps extends GrafanaRouteComponentProps<{}, ExploreQueryParams> {} interface OwnProps {} const mapStateToProps = (state: StoreState) => { return { navModel: getNavModel(state.navIndex, 'explore'), exploreState: state.explore, }; }; const mapDispatchToProps = { resetExploreAction, richHistoryUpdatedAction, }; const connector = connect(mapStateToProps, mapDispatchToProps); type Props = OwnProps & RouteProps & ConnectedProps; class WrapperUnconnected extends PureComponent { componentWillUnmount() { this.props.resetExploreAction({}); } componentDidMount() { lastSavedUrl.left = undefined; lastSavedUrl.right = undefined; const richHistory = getRichHistory(); this.props.richHistoryUpdatedAction({ richHistory }); } componentDidUpdate() { const { left, right } = this.props.queryParams; const hasSplit = Boolean(left) && Boolean(right); const datasourceTitle = hasSplit ? `${this.props.exploreState.left.datasourceInstance?.name} | ${this.props.exploreState.right?.datasourceInstance?.name}` : `${this.props.exploreState.left.datasourceInstance?.name}`; const documentTitle = `${this.props.navModel.main.text} - ${datasourceTitle} - ${Branding.AppTitle}`; document.title = documentTitle; } render() { const { left, right } = this.props.queryParams; const hasSplit = Boolean(left) && Boolean(right); return (
{hasSplit && ( )}
); } } const Wrapper = connector(WrapperUnconnected); export default Wrapper;