grafana/public/app/features/transformers/calculateHeatmap/HeatmapTransformerEditor.tsx
Ryan McKinley fd34700225
HeatmapNG: add log scale calculation (#49969)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2022-06-03 21:02:44 -05:00

52 lines
1.5 KiB
TypeScript

import React, { useEffect } from 'react';
import {
PanelOptionsEditorBuilder,
PluginState,
StandardEditorContext,
TransformerRegistryItem,
TransformerUIProps,
} from '@grafana/data';
import { getDefaultOptions, getTransformerOptionPane } from '../spatial/optionsHelper';
import { addHeatmapCalculationOptions } from './editor/helper';
import { HeatmapTransformerOptions, heatmapTransformer } from './heatmap';
// Nothing defined in state
const supplier = (
builder: PanelOptionsEditorBuilder<HeatmapTransformerOptions>,
context: StandardEditorContext<HeatmapTransformerOptions>
) => {
const options = context.options ?? {};
addHeatmapCalculationOptions('', builder, options);
};
export const HeatmapTransformerEditor: React.FC<TransformerUIProps<HeatmapTransformerOptions>> = (props) => {
useEffect(() => {
if (!props.options.xBuckets?.mode) {
const opts = getDefaultOptions(supplier);
props.onChange({ ...opts, ...props.options });
console.log('geometry useEffect', opts);
}
});
// Shared with spatial transformer
const pane = getTransformerOptionPane<HeatmapTransformerOptions>(props, supplier);
return (
<div>
<div>{pane.items.map((v) => v.render())}</div>
</div>
);
};
export const heatmapTransformRegistryItem: TransformerRegistryItem<HeatmapTransformerOptions> = {
id: heatmapTransformer.id,
editor: HeatmapTransformerEditor,
transformation: heatmapTransformer,
name: heatmapTransformer.name,
description: heatmapTransformer.description,
state: PluginState.alpha,
};