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, context: StandardEditorContext ) => { const options = context.options ?? {}; addHeatmapCalculationOptions('', builder, options); }; export const HeatmapTransformerEditor: React.FC> = (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(props, supplier); return (
{pane.items.map((v) => v.render())}
); }; export const heatmapTransformRegistryItem: TransformerRegistryItem = { id: heatmapTransformer.id, editor: HeatmapTransformerEditor, transformation: heatmapTransformer, name: heatmapTransformer.name, description: heatmapTransformer.description, state: PluginState.alpha, };