mirror of
https://github.com/getredash/redash.git
synced 2026-05-09 21:02:27 -04:00
* Improve sizing for Number inputs
Co-Authored-By: Ran Byron <ranbena@gmail.com>
* Migrate WidgetDialog
* Start migrating Widget
* Update textbox to use HtmlContent
* QueryLink migration and some updates
* Add visualization rendering
* Render widget
* Add delete button
* Update AutoHeight
* Add widget bottom
* Add Drodpown button
* Split Widget component
* Update with #4056 and trigger netlify
* In progress: use composition
* Add header and footer
* Update widget actions positioning
* Re-render when refreshing from widget
* Add workaround to force DashboardGrid re-render
* VisualizationWidgetFooter component
* VisualizationWidget menu
* Separate RestrictedWidget
* Update tests
* Update margin for Parameters
* Remove widget files
* Revert "Improve sizing for Number inputs"
This reverts commit a02ce8f0aa.
* Some cleanup
* Move refresh logic to the Dashboard
* Add loadingWidgets logic to the public dashboard
* Add onLoadWidget
* Remove parameter from URL when empty
* Recreate widget array instead of loadingWidgets
* Add comment about re-rendering + whitespace missing
* CR changes
* Use plain html instead of string syntax
Co-Authored-By: Ran Byron <ranbena@gmail.com>
32 lines
807 B
JavaScript
32 lines
807 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));
|
|
let isCancelled = false;
|
|
useEffect(() => {
|
|
if (queryResult) {
|
|
queryResult.toPromise()
|
|
.then(() => {
|
|
if (!isCancelled) {
|
|
setData(getQueryResultData(queryResult));
|
|
}
|
|
});
|
|
} else {
|
|
setData(getQueryResultData(queryResult));
|
|
}
|
|
return () => {
|
|
isCancelled = true;
|
|
};
|
|
}, [queryResult]);
|
|
return data;
|
|
}
|