mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
This changes PanelModel's API to support PanelModel API updates when changing panel type. Primary useful when changing panel type between Angular and React panels, as other migrations can be handled via DashboardMigrator. API change: https://github.com/grafana/grafana/pull/22754/files#diff-d9e3f91dc7d5697f6d85ada008003b4b
29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
import { sharedSingleStatPanelChangedHandler, sharedSingleStatMigrationHandler } from '@grafana/ui';
|
|
import { PanelModel } from '@grafana/data';
|
|
import { GaugeOptions } from './types';
|
|
|
|
// This is called when the panel first loads
|
|
export const gaugePanelMigrationHandler = (panel: PanelModel<GaugeOptions>): Partial<GaugeOptions> => {
|
|
return sharedSingleStatMigrationHandler(panel);
|
|
};
|
|
|
|
// This is called when the panel changes from another panel
|
|
export const gaugePanelChangedHandler = (
|
|
panel: PanelModel<Partial<GaugeOptions>> | any,
|
|
prevPluginId: string,
|
|
prevOptions: any
|
|
) => {
|
|
// This handles most config changes
|
|
const opts = sharedSingleStatPanelChangedHandler(panel, prevPluginId, prevOptions) as GaugeOptions;
|
|
|
|
// Changing from angular singlestat
|
|
if (prevPluginId === 'singlestat' && prevOptions.angular) {
|
|
const gauge = prevOptions.angular.gauge;
|
|
if (gauge) {
|
|
opts.showThresholdMarkers = gauge.thresholdMarkers;
|
|
opts.showThresholdLabels = gauge.thresholdLabels;
|
|
}
|
|
}
|
|
return opts;
|
|
};
|