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 { NavModel } from '@grafana/data'; 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'), }; }; const mapDispatchToProps = { resetExploreAction, richHistoryUpdatedAction, }; const connector = connect(mapStateToProps, mapDispatchToProps); type Props = OwnProps & RouteProps & ConnectedProps; class WrapperUnconnected extends PureComponent { updatePageDocumentTitle(navModel: NavModel) { if (navModel) { document.title = `${navModel.main.text} - ${Branding.AppTitle}`; } else { document.title = Branding.AppTitle; } } componentWillUnmount() { this.props.resetExploreAction({}); } componentDidMount() { lastSavedUrl.left = undefined; lastSavedUrl.right = undefined; const richHistory = getRichHistory(); this.props.richHistoryUpdatedAction({ richHistory }); this.updatePageDocumentTitle(this.props.navModel); } render() { const { left, right } = this.props.queryParams; const hasSplit = Boolean(left) && Boolean(right); return (
{hasSplit && ( )}
); } } const Wrapper = connector(WrapperUnconnected); export default Wrapper;