mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
52 lines
1.5 KiB
TypeScript
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,
|
|
};
|