Logs: fix logs table reset

This commit is contained in:
L2D2Grafana
2026-01-07 07:50:51 -08:00
parent e8561c6b0f
commit 70d0e9006b
4 changed files with 17 additions and 8 deletions
+4 -2
View File
@@ -596,9 +596,9 @@ const UnthemedLogs: React.FunctionComponent<Props> = (props: Props) => {
const clearDisplayedFields = useCallback(() => {
updatePanelState({
displayedFields: [],
displayedFields: defaultDisplayedFields,
});
}, [updatePanelState]);
}, [defaultDisplayedFields, updatePanelState]);
// Wrapper function for setDisplayedFields prop - updates Redux directly
const setDisplayedFields = useCallback(
@@ -1047,6 +1047,7 @@ const UnthemedLogs: React.FunctionComponent<Props> = (props: Props) => {
updatePanelState={updatePanelState}
datasourceType={props.datasourceType}
displayedFields={displayedFields}
defaultDisplayedFields={defaultDisplayedFields}
exploreId={props.exploreId}
absoluteRange={props.absoluteRange}
logRows={props.logRows}
@@ -1086,6 +1087,7 @@ const UnthemedLogs: React.FunctionComponent<Props> = (props: Props) => {
getFieldLinks={getFieldLinks}
logsSortOrder={logsSortOrder}
displayedFields={displayedFields}
defaultDisplayedFields={defaultDisplayedFields}
onClickShowField={showField}
onClickHideField={hideField}
app={CoreApp.Explore}
@@ -53,6 +53,7 @@ interface Props {
datasourceType?: string;
exploreId?: string;
displayedFields?: string[];
defaultDisplayedFields?: string[];
absoluteRange?: AbsoluteTimeRange;
logRows?: LogRowModel[];
}
@@ -78,7 +79,7 @@ type FieldName = string;
export type FieldNameMetaStore = Record<FieldName, FieldNameMeta>;
export function LogsTableWrap(props: Props) {
const { logsFrames, updatePanelState, panelState } = props;
const { logsFrames, updatePanelState, panelState, defaultDisplayedFields } = props;
const propsColumns = panelState?.displayedFields;
// Save the normalized cardinality of each label
const [columnsWithMeta, setColumnsWithMeta] = useState<FieldNameMetaStore | undefined>(undefined);
@@ -124,14 +125,17 @@ export function LogsTableWrap(props: Props) {
useEffect(() => {
if (logsFrame?.timeField.name && logsFrame?.bodyField.name && !propsColumns) {
const defaultColumns = [logsFrame?.timeField.name, logsFrame?.bodyField.name];
// Use defaultDisplayedFields if available, otherwise fall back to basic defaults
const columns = defaultDisplayedFields?.length
? defaultDisplayedFields
: [logsFrame?.timeField.name, logsFrame?.bodyField.name];
updatePanelState({
displayedFields: defaultColumns,
displayedFields: columns,
visualisationType: 'table',
labelFieldName: logsFrame?.getLabelFieldName() ?? undefined,
});
}
}, [logsFrame, propsColumns, updatePanelState]);
}, [logsFrame, propsColumns, updatePanelState, defaultDisplayedFields]);
/**
* When logs frame updates (e.g. query|range changes), we need to set the selected frame to state
@@ -399,9 +403,9 @@ export function LogsTableWrap(props: Props) {
}
});
setColumnsWithMeta(pendingLabelState);
// Reset displayedFields to empty array to trigger defaults logic
// Reset displayedFields to defaults
updatePanelState({
displayedFields: [],
displayedFields: defaultDisplayedFields?.length ? defaultDisplayedFields : [],
});
};
@@ -43,6 +43,7 @@ export interface ControlledLogRowsProps extends Omit<Props, 'scrollElement'> {
width?: number;
logsTableFrames?: DataFrame[];
displayedFields?: string[];
defaultDisplayedFields?: string[];
exploreId?: string;
absoluteRange?: AbsoluteTimeRange;
logRows?: LogRowModel[];
@@ -26,6 +26,7 @@ export const ControlledLogsTable = ({
logsTableFrames,
visualisationType,
displayedFields,
defaultDisplayedFields,
exploreId,
absoluteRange,
logRows,
@@ -63,6 +64,7 @@ export const ControlledLogsTable = ({
updatePanelState={updatePanelState}
datasourceType={datasourceType}
displayedFields={displayedFields}
defaultDisplayedFields={defaultDisplayedFields}
exploreId={exploreId}
absoluteRange={absoluteRange}
logRows={logRows}