Skip to content

Commit 5fbd4b5

Browse files
committed
Open additional settings by default
1 parent 51d2c49 commit 5fbd4b5

1 file changed

Lines changed: 68 additions & 2 deletions

File tree

src/views/config-v2/AdditionalSettingsSection.tsx

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ConfigSubSection } from 'components/experimental/ConfigSection';
22
import allLabels from './labelsV2';
3-
import React, { ChangeEvent, useState } from 'react';
3+
import React, { ChangeEvent, useMemo, useState } from 'react';
44
import {
55
DataSourcePluginOptionsEditorProps,
66
onUpdateDatasourceJsonDataOption,
@@ -110,6 +110,72 @@ export const AdditionalSettingsSection = (props: Props) => {
110110
});
111111
};
112112

113+
// if any of the settings in this section are set, open the section by default
114+
const shouldBeOpen = useMemo(() => {
115+
const anyDefaults = jsonData.defaultDatabase || jsonData.defaultTable;
116+
117+
const anyQuerySettings =
118+
jsonData.connMaxLifetime ||
119+
jsonData.dialTimeout ||
120+
jsonData.maxIdleConns ||
121+
jsonData.maxOpenConns ||
122+
jsonData.queryTimeout ||
123+
jsonData.validateSql;
124+
125+
const logs = jsonData.logs || {};
126+
const anyLogs =
127+
logs.defaultDatabase ||
128+
logs.defaultTable !== 'otel_logs' ||
129+
logs.otelEnabled ||
130+
logs.otelVersion !== 'latest' ||
131+
logs.timeColumn ||
132+
logs.levelColumn ||
133+
logs.messageColumn ||
134+
logs.selectContextColumns ||
135+
logs.contextColumns!.length > 0;
136+
137+
const traces = jsonData.traces || {};
138+
const anyTraces =
139+
traces.defaultDatabase ||
140+
traces.defaultTable !== 'otel_traces' ||
141+
traces.otelEnabled ||
142+
traces.otelVersion !== 'latest' ||
143+
traces.traceIdColumn ||
144+
traces.spanIdColumn ||
145+
traces.operationNameColumn ||
146+
traces.parentSpanIdColumn ||
147+
traces.serviceNameColumn ||
148+
traces.durationColumn ||
149+
traces.startTimeColumn ||
150+
traces.tagsColumn ||
151+
traces.serviceTagsColumn ||
152+
traces.kindColumn ||
153+
traces.statusCodeColumn ||
154+
traces.statusMessageColumn ||
155+
traces.stateColumn ||
156+
traces.instrumentationLibraryNameColumn ||
157+
traces.instrumentationLibraryVersionColumn ||
158+
traces.flattenNested ||
159+
traces.traceEventsColumnPrefix ||
160+
traces.traceLinksColumnPrefix;
161+
162+
const anyAliasTables = Array.isArray(jsonData.aliasTables) && jsonData.aliasTables.length > 0;
163+
164+
const anyRowLimit = jsonData.enableRowLimit;
165+
const anySecureSocks = jsonData.enableSecureSocksProxy;
166+
167+
return (
168+
anyDefaults ||
169+
anyQuerySettings ||
170+
anyLogs ||
171+
anyTraces ||
172+
anyAliasTables ||
173+
anyRowLimit ||
174+
anySecureSocks ||
175+
customSettings.length > 0
176+
);
177+
}, [jsonData, customSettings]);
178+
113179
return (
114180
<Box
115181
borderStyle="solid"
@@ -126,7 +192,7 @@ export const AdditionalSettingsSection = (props: Props) => {
126192
<Badge text="optional" color="darkgrey" className={styles.badge} />
127193
</>
128194
}
129-
isOpen={!!CONFIG_SECTION_HEADERS[3].isOpen}
195+
isOpen={!!shouldBeOpen}
130196
>
131197
<DefaultDatabaseTableConfig
132198
defaultDatabase={jsonData.defaultDatabase}

0 commit comments

Comments
 (0)