Files
redash/client/app/lib/hooks/useQueryResult.js
Arik Fraimovich 56d3be2248 Prettier all the Javascript code & GitHub Action (#4433)
* Prettier all the JS files

* Add GitHub Action to autoformat code pushed to master

* Fix eslint violation due to formatting.

* Remove GitHub actions for styling

* Add restyled.io config
2019-12-11 17:05:38 +02:00

31 lines
792 B
JavaScript

import { useState, useEffect } from "react";
import { invoke } from "lodash";
function getQueryResultData(queryResult) {
return {
columns: invoke(queryResult, "getColumns") || [],
rows: invoke(queryResult, "getData") || [],
filters: invoke(queryResult, "getFilters") || [],
};
}
export default function useQueryResult(queryResult) {
const [data, setData] = useState(getQueryResultData(queryResult));
useEffect(() => {
let isCancelled = false;
if (queryResult) {
queryResult.toPromise().then(() => {
if (!isCancelled) {
setData(getQueryResultData(queryResult));
}
});
} else {
setData(getQueryResultData(queryResult));
}
return () => {
isCancelled = true;
};
}, [queryResult]);
return data;
}