mirror of
https://github.com/grafana/grafana.git
synced 2025-09-22 10:12:52 +08:00

* Loki: Move explain to builder and code mode * Update * Update transition * Fix tests * Fix tests * Prometheus: Move explain section to builder mode (#52935) * Prometheus: Move explain section to builder mode * Show explain switch before raw query switch * Store explain switch value in localstorage * Make explain available for code mode too * Introduce useFlag hook for query editor switches * Remove Explain mode Co-authored-by: ismail simsek <ismailsimsek09@gmail.com>
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import store from 'app/core/store';
|
|
|
|
import { QueryEditorMode } from '../../prometheus/querybuilder/shared/types';
|
|
import { LokiQuery, LokiQueryType } from '../types';
|
|
|
|
const queryEditorModeDefaultLocalStorageKey = 'LokiQueryEditorModeDefault';
|
|
|
|
export function changeEditorMode(query: LokiQuery, editorMode: QueryEditorMode, onChange: (query: LokiQuery) => void) {
|
|
// If empty query store new mode as default
|
|
if (query.expr === '') {
|
|
store.set(queryEditorModeDefaultLocalStorageKey, editorMode);
|
|
}
|
|
|
|
onChange({ ...query, editorMode });
|
|
}
|
|
|
|
export function getDefaultEditorMode(expr: string) {
|
|
// If we already have an expression default to code view
|
|
if (expr != null && expr !== '') {
|
|
return QueryEditorMode.Code;
|
|
}
|
|
|
|
const value = store.get(queryEditorModeDefaultLocalStorageKey) as QueryEditorMode;
|
|
switch (value) {
|
|
case QueryEditorMode.Builder:
|
|
case QueryEditorMode.Code:
|
|
return value;
|
|
default:
|
|
return QueryEditorMode.Builder;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns query with defaults, and boolean true/false depending on change was required
|
|
*/
|
|
export function getQueryWithDefaults(query: LokiQuery): LokiQuery {
|
|
// If no expr (ie new query) then default to builder
|
|
let result = query;
|
|
|
|
if (!query.editorMode) {
|
|
result = { ...query, editorMode: getDefaultEditorMode(query.expr) };
|
|
}
|
|
|
|
if (query.expr == null) {
|
|
result = { ...result, expr: '' };
|
|
}
|
|
|
|
if (query.queryType == null) {
|
|
// Default to range query
|
|
result = { ...result, queryType: LokiQueryType.Range };
|
|
}
|
|
|
|
return result;
|
|
}
|