Files
grafana/packages/grafana-sql/src/utils/useSqlChange.ts
Gábor Farkas 29e8a355cb sql: extract frontend code into separate package (#81109)
* sql: extract frontend code into separate package

* updated package version
2024-01-26 11:38:29 +01:00

24 lines
639 B
TypeScript

import { useCallback } from 'react';
import { DB, SQLExpression, SQLQuery } from '../types';
interface UseSqlChange {
db: DB;
query: SQLQuery;
onQueryChange: (query: SQLQuery) => void;
}
export function useSqlChange({ query, onQueryChange, db }: UseSqlChange) {
const onSqlChange = useCallback(
(sql: SQLExpression) => {
const toRawSql = db.toRawSql;
const rawSql = toRawSql({ sql, dataset: query.dataset, table: query.table, refId: query.refId });
const newQuery: SQLQuery = { ...query, sql, rawSql };
onQueryChange(newQuery);
},
[db, onQueryChange, query]
);
return { onSqlChange };
}