fix: [alerts] solved legend not updating issue in ch query editor (#1757)

* fix: [alerts] solved legend not updating issue in ch query editor

* fix: [alerts]removed console.log

* fix: added jsdoc description tag
This commit is contained in:
Amol Umbark 2022-11-25 12:16:47 +05:30 committed by GitHub
parent 4b3829fd5b
commit 7cec2db503
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 17 deletions

View File

@ -3,6 +3,8 @@ import { IClickHouseQueryHandleChange } from 'container/NewWidget/LeftContainer/
import React from 'react'; import React from 'react';
import { IChQueries } from 'types/api/alerts/compositeQuery'; import { IChQueries } from 'types/api/alerts/compositeQuery';
import { rawQueryToIChQuery, toIClickHouseQuery } from './transform';
function ChQuerySection({ function ChQuerySection({
chQueries, chQueries,
setChQueries, setChQueries,
@ -12,34 +14,25 @@ function ChQuerySection({
legend, legend,
toggleDelete, toggleDelete,
}: IClickHouseQueryHandleChange): void => { }: IClickHouseQueryHandleChange): void => {
let chQuery = chQueries.A; const chQuery = rawQueryToIChQuery(
chQueries.A,
rawQuery,
legend,
toggleDelete,
);
if (rawQuery) {
chQuery.rawQuery = rawQuery;
chQuery.query = rawQuery;
}
if (legend) chQuery.legend = legend;
if (toggleDelete) {
chQuery = {
rawQuery: '',
legend: '',
name: 'A',
disabled: false,
query: '',
};
}
setChQueries({ setChQueries({
A: { A: {
...chQuery, ...chQuery,
}, },
}); });
}; };
return ( return (
<ClickHouseQueryBuilder <ClickHouseQueryBuilder
key="A" key="A"
queryIndex="A" queryIndex="A"
queryData={{ ...chQueries?.A, name: 'A', rawQuery: chQueries?.A.query }} queryData={toIClickHouseQuery(chQueries?.A)}
handleQueryChange={handleChQueryChange} handleQueryChange={handleChQueryChange}
/> />
); );

View File

@ -0,0 +1,3 @@
import ChQuerySection from './ChQuerySection';
export default ChQuerySection;

View File

@ -0,0 +1,37 @@
import { IChQuery } from 'types/api/alerts/compositeQuery';
import { IClickHouseQuery } from 'types/api/dashboard/getAll';
// @description rawQueryToIChQuery transforms raw query (from ClickHouseQueryBuilder)
// to alert specific IChQuery format
export const rawQueryToIChQuery = (
src: IChQuery,
rawQuery: string | undefined,
legend: string | undefined,
toggleDelete: boolean | undefined,
): IChQuery => {
if (toggleDelete) {
return {
rawQuery: '',
legend: '',
name: 'A',
disabled: false,
query: '',
};
}
return {
rawQuery: rawQuery !== undefined ? rawQuery : src.rawQuery,
query: rawQuery !== undefined ? rawQuery : src.rawQuery,
legend: legend !== undefined ? legend : src.legend,
name: 'A',
disabled: false,
};
};
// @description toIClickHouseQuery transforms IChQuery (alert specific) to
// ClickHouseQueryBuilder format. The main difference is
// use of rawQuery (in ClickHouseQueryBuilder)
// and query (in alert builder)
export const toIClickHouseQuery = (src: IChQuery): IClickHouseQuery => {
return { ...src, name: 'A', rawQuery: src.query };
};

View File

@ -54,6 +54,7 @@ function ClickHouseQueryBuilder({
} }
size="middle" size="middle"
defaultValue={queryData.legend} defaultValue={queryData.legend}
value={queryData.legend}
addonBefore="Legend Format" addonBefore="Legend Format"
/> />
</QueryHeader> </QueryHeader>