fix #103209: fix access for tables with nullable data (#106094)

pull/106177/head
Paul Marbach 1 month ago committed by GitHub
parent 7f1a286ffb
commit f151efd3cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 19
      packages/grafana-ui/src/components/Table/utils.test.ts
  2. 7
      packages/grafana-ui/src/components/Table/utils.ts

@ -596,5 +596,24 @@ describe('Table utils', () => {
const longestField = guessLongestField(config, data);
expect(longestField).toBe(undefined);
});
it('should not throw an error if first entry in input data is missing a given field', () => {
const data = getWrappableData(10);
const config: FieldConfigSource = {
defaults: {
custom: {
cellOptions: {
wrapText: true,
},
},
},
overrides: [],
};
data.fields[1].values[0] = undefined; // Simulate missing value in the first row
const longestField = guessLongestField(config, data);
expect(longestField?.name).toBe('Lorem 10');
});
});
});

@ -729,12 +729,11 @@ export function guessLongestField(fieldConfig: FieldConfigSource, data: DataFram
const numValues = stringFields[0].values.length;
let longestLength = 0;
// If we have less than 30 values we assume
// that the first record is representative
// of the overall data
// If we have less than 30 values we assume that the first
// non-null record is representative of the overall data
if (numValues <= 30) {
for (const field of stringFields) {
const fieldLength = field.values[0].length;
const fieldLength = field.values.find((v) => v != null)?.length ?? 0;
if (fieldLength > longestLength) {
longestLength = fieldLength;
longestField = field;

Loading…
Cancel
Save