mirror of https://github.com/grafana/grafana
Extract duplicated code (#80991)
parent
391f3ca615
commit
b9d2f8c73b
@ -1,84 +0,0 @@ |
||||
import { css } from '@emotion/css'; |
||||
import React from 'react'; |
||||
|
||||
import { |
||||
DataSourceJsonData, |
||||
DataSourcePluginOptionsEditorProps, |
||||
GrafanaTheme2, |
||||
updateDatasourcePluginJsonDataOption, |
||||
} from '@grafana/data'; |
||||
import { ConfigSubSection, ConfigDescriptionLink } from '@grafana/experimental'; |
||||
import { InlineField, InlineFieldRow, InlineSwitch, useStyles2 } from '@grafana/ui'; |
||||
|
||||
export interface NodeGraphOptions { |
||||
enabled?: boolean; |
||||
} |
||||
|
||||
export interface NodeGraphData extends DataSourceJsonData { |
||||
nodeGraph?: NodeGraphOptions; |
||||
} |
||||
|
||||
interface Props extends DataSourcePluginOptionsEditorProps<NodeGraphData> {} |
||||
|
||||
export function NodeGraphSettings({ options, onOptionsChange }: Props) { |
||||
const styles = useStyles2(getStyles); |
||||
|
||||
return ( |
||||
<div className={styles.container}> |
||||
<InlineFieldRow className={styles.row}> |
||||
<InlineField |
||||
tooltip="Displays the node graph above the trace view. Default: disabled" |
||||
label="Enable node graph" |
||||
labelWidth={26} |
||||
> |
||||
<InlineSwitch |
||||
id="enableNodeGraph" |
||||
value={options.jsonData.nodeGraph?.enabled} |
||||
onChange={(event: React.SyntheticEvent<HTMLInputElement>) => |
||||
updateDatasourcePluginJsonDataOption({ onOptionsChange, options }, 'nodeGraph', { |
||||
...options.jsonData.nodeGraph, |
||||
enabled: event.currentTarget.checked, |
||||
}) |
||||
} |
||||
/> |
||||
</InlineField> |
||||
</InlineFieldRow> |
||||
</div> |
||||
); |
||||
} |
||||
|
||||
export const NodeGraphSection = ({ options, onOptionsChange }: DataSourcePluginOptionsEditorProps) => { |
||||
let suffix = options.type; |
||||
suffix += options.type === 'tempo' ? '/configure-tempo-data-source/#node-graph' : '/#node-graph'; |
||||
|
||||
return ( |
||||
<ConfigSubSection |
||||
title="Node graph" |
||||
description={ |
||||
<ConfigDescriptionLink |
||||
description="Show or hide the node graph visualization." |
||||
suffix={suffix} |
||||
feature="the node graph" |
||||
/> |
||||
} |
||||
> |
||||
<NodeGraphSettings options={options} onOptionsChange={onOptionsChange} /> |
||||
</ConfigSubSection> |
||||
); |
||||
}; |
||||
|
||||
const getStyles = (theme: GrafanaTheme2) => ({ |
||||
infoText: css` |
||||
label: infoText; |
||||
padding-bottom: ${theme.spacing(2)}; |
||||
color: ${theme.colors.text.secondary}; |
||||
`,
|
||||
container: css` |
||||
label: container; |
||||
width: 100%; |
||||
`,
|
||||
row: css` |
||||
label: row; |
||||
align-items: baseline; |
||||
`,
|
||||
}); |
||||
Loading…
Reference in new issue