Logs: Fix stats not being updated when log results change (#62317)
update stats in logdetails
(cherry picked from commit ae8c61c0b2)
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import { css, cx } from '@emotion/css';
|
import { css, cx } from '@emotion/css';
|
||||||
|
import { isEqual } from 'lodash';
|
||||||
import React, { PureComponent } from 'react';
|
import React, { PureComponent } from 'react';
|
||||||
|
|
||||||
import { Field, LinkModel, LogLabelStatsModel, GrafanaTheme2, LogRowModel, CoreApp } from '@grafana/data';
|
import { Field, LinkModel, LogLabelStatsModel, GrafanaTheme2, LogRowModel, CoreApp } from '@grafana/data';
|
||||||
@@ -76,6 +77,12 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> {
|
|||||||
mouseOver: false,
|
mouseOver: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
componentDidUpdate() {
|
||||||
|
if (this.state.showFieldsStats) {
|
||||||
|
this.updateStats();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
showField = () => {
|
showField = () => {
|
||||||
const { onClickShowDetectedField, parsedKey, row } = this.props;
|
const { onClickShowDetectedField, parsedKey, row } = this.props;
|
||||||
if (onClickShowDetectedField) {
|
if (onClickShowDetectedField) {
|
||||||
@@ -128,13 +135,20 @@ class UnThemedLogDetailsRow extends PureComponent<Props, State> {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
updateStats = () => {
|
||||||
|
const { getStats } = this.props;
|
||||||
|
const fieldStats = getStats();
|
||||||
|
const fieldCount = fieldStats ? fieldStats.reduce((sum, stat) => sum + stat.count, 0) : 0;
|
||||||
|
if (!isEqual(this.state.fieldStats, fieldStats) || fieldCount !== this.state.fieldCount) {
|
||||||
|
this.setState({ fieldStats, fieldCount });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
showStats = () => {
|
showStats = () => {
|
||||||
const { getStats, isLabel, row, app } = this.props;
|
const { isLabel, row, app } = this.props;
|
||||||
const { showFieldsStats } = this.state;
|
const { showFieldsStats } = this.state;
|
||||||
if (!showFieldsStats) {
|
if (!showFieldsStats) {
|
||||||
const fieldStats = getStats();
|
this.updateStats();
|
||||||
const fieldCount = fieldStats ? fieldStats.reduce((sum, stat) => sum + stat.count, 0) : 0;
|
|
||||||
this.setState({ fieldStats, fieldCount });
|
|
||||||
}
|
}
|
||||||
this.toggleFieldsStats();
|
this.toggleFieldsStats();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user