Repeatable option link issue #1 #2

Merged
rozetko merged 1 commits from fix-the-link-issue into main 9 months ago
  1. 11
      src/components/Panel.tsx

11
src/components/Panel.tsx

@ -14,13 +14,13 @@ import { PanelData, TimeRange, PanelProps } from '@grafana/data';
import { VizLegend } from '@grafana/ui'; import { VizLegend } from '@grafana/ui';
import { LegendDisplayMode } from '@grafana/schema'; import { LegendDisplayMode } from '@grafana/schema';
import React, { useRef } from 'react'; import React, { useCallback, useRef } from 'react';
import { css } from 'emotion'; import { css } from 'emotion';
import * as _ from 'lodash'; import * as _ from 'lodash';
interface Props extends PanelProps<PanelOptions> {} interface Props extends PanelProps<PanelOptions> {}
export function Panel({ options, data, width, height, timeRange, onChangeTimeRange }: Props) { export function Panel({ options, data, width, height, timeRange, onChangeTimeRange, replaceVariables }: Props) {
const grafanaSeriesList = getGrafanaSeriesList(data, timeRange); const grafanaSeriesList = getGrafanaSeriesList(data, timeRange);
let chartContainer = useRef(null); let chartContainer = useRef(null);
@ -45,13 +45,14 @@ export function Panel({ options, data, width, height, timeRange, onChangeTimeRan
}); });
const isLinkActive = !_.isEmpty(options.gauge.link); const isLinkActive = !_.isEmpty(options.gauge.link);
const chartClickHandler = (event: React.MouseEvent<HTMLDivElement>) => { const chartClickHandler = useCallback((event: React.MouseEvent<HTMLDivElement>) => {
event.preventDefault(); event.preventDefault();
if (!isLinkActive) { if (!isLinkActive) {
return; return;
} }
window.open(options.gauge.link, '_self'); const link = replaceVariables(options.gauge.link as string);
}; window.open(link, '_self');
}, [options.gauge.link]);
const legendItems = _.map(grafanaSeriesList, (serie) => { const legendItems = _.map(grafanaSeriesList, (serie) => {
return { return {
label: serie.alias, label: serie.alias,

Loading…
Cancel
Save