1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { css } from '@emotion/css';
- import React from 'react';
- import {
- DataSourceJsonData,
- DataSourcePluginOptionsEditorProps,
- GrafanaTheme,
- updateDatasourcePluginJsonDataOption,
- } from '@grafana/data';
- import { InlineField, InlineFieldRow, InlineSwitch, useStyles } 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 = useStyles(getStyles);
- return (
- <div className={styles.container}>
- <h3 className="page-heading">Node Graph</h3>
- <InlineFieldRow className={styles.row}>
- <InlineField
- tooltip="Enables the Node Graph visualization in the trace viewer."
- 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>
- );
- }
- const getStyles = (theme: GrafanaTheme) => ({
- container: css`
- label: container;
- width: 100%;
- `,
- row: css`
- label: row;
- align-items: baseline;
- `,
- });
|