mirror of
https://github.com/getredash/redash.git
synced 2026-03-22 01:00:14 -04:00
* 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
31 lines
792 B
JavaScript
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;
|
|
}
|