import React from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { CoreApp, TimeZone } from '@grafana/data'; import { TabbedContainer, TabConfig } from '@grafana/ui'; import { ExploreDrawer } from 'app/features/explore/ExploreDrawer'; import { InspectDataTab } from 'app/features/inspector/InspectDataTab'; import { InspectErrorTab } from 'app/features/inspector/InspectErrorTab'; import { InspectJSONTab } from 'app/features/inspector/InspectJSONTab'; import { InspectStatsTab } from 'app/features/inspector/InspectStatsTab'; import { QueryInspector } from 'app/features/inspector/QueryInspector'; import { StoreState, ExploreItemState, ExploreId } from 'app/types'; import { runQueries } from './state/query'; interface DispatchProps { width: number; exploreId: ExploreId; timeZone: TimeZone; onClose: () => void; } type Props = DispatchProps & ConnectedProps; export function ExploreQueryInspector(props: Props) { const { loading, width, onClose, queryResponse, timeZone } = props; const dataFrames = queryResponse?.series || []; const error = queryResponse?.error; const statsTab: TabConfig = { label: 'Stats', value: 'stats', icon: 'chart-line', content: , }; const jsonTab: TabConfig = { label: 'JSON', value: 'json', icon: 'brackets-curly', content: , }; const dataTab: TabConfig = { label: 'Data', value: 'data', icon: 'database', content: ( ), }; const queryTab: TabConfig = { label: 'Query', value: 'query', icon: 'info-circle', content: props.runQueries(props.exploreId)} />, }; const tabs = [statsTab, queryTab, jsonTab, dataTab]; if (error) { const errorTab: TabConfig = { label: 'Error', value: 'error', icon: 'exclamation-triangle', content: , }; tabs.push(errorTab); } return ( ); } function mapStateToProps(state: StoreState, { exploreId }: { exploreId: ExploreId }) { const explore = state.explore; const item: ExploreItemState = explore[exploreId]!; const { loading, queryResponse } = item; return { loading, queryResponse, }; } const mapDispatchToProps = { runQueries, }; const connector = connect(mapStateToProps, mapDispatchToProps); export default connector(ExploreQueryInspector);