TrendPanel: use isLikelyAscendingVector rather than brute force (#65977)

use likely frames
This commit is contained in:
Ryan McKinley 2023-04-05 09:09:52 -07:00 committed by GitHub
parent a378e34250
commit 7e312a6aa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,7 @@
import React, { useMemo } from 'react';
import { FieldType, PanelProps } from '@grafana/data';
import { isLikelyAscendingVector } from '@grafana/data/src/transformations/transformers/joinDataFrames';
import { config, PanelDataErrorView } from '@grafana/runtime';
import { KeyboardPlugin, TimeSeries, TooltipDisplayMode, TooltipPlugin, usePanelContext } from '@grafana/ui';
import { findFieldIndex } from 'app/features/dimensions';
@ -56,20 +57,11 @@ export const TrendPanel = ({
// Make sure values are ascending
if (xFieldIdx != null) {
const field = frames[0].fields[xFieldIdx];
if (field.type === FieldType.number) {
// we may support ordinal soon
let last = Number.NEGATIVE_INFINITY;
const values = field.values.toArray();
for (let i = 0; i < values.length; i++) {
const v = values[i];
if (last > v) {
return {
warning: `Values must be in ascending order (index: ${i}, ${last} > ${v})`,
frames,
};
}
last = v;
}
if (field.type === FieldType.number && !isLikelyAscendingVector(field.values)) {
return {
warning: `Values must be in ascending order`,
frames,
};
}
}