Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
dashboard
/
components
/
Inspector
/
File Content:
PanelInspector.tsx
import React, { useState } from 'react'; import { connect, MapStateToProps } from 'react-redux'; import { useLocation } from 'react-router-dom'; import { PanelPlugin } from '@grafana/data'; import { locationService } from '@grafana/runtime'; import { DashboardModel, PanelModel } from 'app/features/dashboard/state'; import { InspectTab } from 'app/features/inspector/types'; import { getPanelStateForModel } from 'app/features/panel/state/selectors'; import { StoreState } from 'app/types'; import { GetDataOptions } from '../../../query/state/PanelQueryRunner'; import { HelpWizard } from '../HelpWizard/HelpWizard'; import { usePanelLatestData } from '../PanelEditor/usePanelLatestData'; import { InspectContent } from './InspectContent'; import { useDatasourceMetadata, useInspectTabs } from './hooks'; interface OwnProps { dashboard: DashboardModel; panel: PanelModel; } export interface ConnectedProps { plugin?: PanelPlugin | null; } export type Props = OwnProps & ConnectedProps; const PanelInspectorUnconnected = ({ panel, dashboard, plugin }: Props) => { const location = useLocation(); const defaultTab = new URLSearchParams(location.search).get('inspectTab') as InspectTab; const [dataOptions, setDataOptions] = useState<GetDataOptions>({ withTransforms: defaultTab === InspectTab.Error, withFieldConfig: true, }); const { data, isLoading, hasError } = usePanelLatestData(panel, dataOptions, false); const metaDs = useDatasourceMetadata(data); const tabs = useInspectTabs(panel, dashboard, plugin, hasError, metaDs); const onClose = () => { locationService.partial({ inspect: null, inspectTab: null, }); }; if (!plugin) { return null; } if (defaultTab === InspectTab.Help) { return <HelpWizard panel={panel} plugin={plugin} onClose={onClose} />; } return ( <InspectContent dashboard={dashboard} panel={panel} plugin={plugin} defaultTab={defaultTab} tabs={tabs} data={data} isDataLoading={isLoading} dataOptions={dataOptions} onDataOptionsChange={setDataOptions} metadataDatasource={metaDs} onClose={onClose} /> ); }; const mapStateToProps: MapStateToProps<ConnectedProps, OwnProps, StoreState> = (state, props) => { const panelState = getPanelStateForModel(state, props.panel); if (!panelState) { return { plugin: null }; } return { plugin: panelState.plugin, }; }; export const PanelInspector = connect(mapStateToProps)(PanelInspectorUnconnected);
Edit
Rename
Chmod
Delete
FILE
FOLDER
INFO
Name
Size
Permission
Action
InspectContent.tsx
4723 bytes
0644
PanelInspector.tsx
2540 bytes
0644
hooks.ts
2330 bytes
0644
N4ST4R_ID | Naxtarrr