mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-18 05:10:45 +00:00
SPRINT-21: attempt to fix weird widget behavior when widget data is not cleared out/async updates
This commit is contained in:
@ -85,6 +85,7 @@ function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omit
|
|||||||
|
|
||||||
useEffect(() =>
|
useEffect(() =>
|
||||||
{
|
{
|
||||||
|
setWidgetData([]);
|
||||||
for (let i = 0; i < widgetMetaDataList.length; i++)
|
for (let i = 0; i < widgetMetaDataList.length; i++)
|
||||||
{
|
{
|
||||||
const widgetMetaData = widgetMetaDataList[i];
|
const widgetMetaData = widgetMetaDataList[i];
|
||||||
@ -96,17 +97,21 @@ function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omit
|
|||||||
(async () =>
|
(async () =>
|
||||||
{
|
{
|
||||||
widgetData[i] = await qController.widget(widgetMetaData.name, urlParams);
|
widgetData[i] = await qController.widget(widgetMetaData.name, urlParams);
|
||||||
|
setWidgetData(widgetData);
|
||||||
setWidgetCounter(widgetCounter + 1);
|
setWidgetCounter(widgetCounter + 1);
|
||||||
forceUpdate();
|
forceUpdate();
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
setWidgetData(widgetData);
|
|
||||||
}, [widgetMetaDataList]);
|
}, [widgetMetaDataList]);
|
||||||
|
|
||||||
const reloadWidget = async (index: number, data: string) =>
|
const reloadWidget = async (index: number, data: string) =>
|
||||||
{
|
{
|
||||||
widgetData[index] = await qController.widget(widgetMetaDataList[index].name, getQueryParams(null, data));
|
(async() =>
|
||||||
forceUpdate();
|
{
|
||||||
|
widgetData[index] = await qController.widget(widgetMetaDataList[index].name, getQueryParams(null, data));
|
||||||
|
setWidgetData(widgetData);
|
||||||
|
forceUpdate();
|
||||||
|
})();
|
||||||
};
|
};
|
||||||
|
|
||||||
function getQueryParams(widgetMetaData: QWidgetMetaData, extraParams: string): string
|
function getQueryParams(widgetMetaData: QWidgetMetaData, extraParams: string): string
|
||||||
@ -174,7 +179,7 @@ function DashboardWidgets({widgetMetaDataList, tableName, entityPrimaryKey, omit
|
|||||||
widgetIndex={i}
|
widgetIndex={i}
|
||||||
widgetMetaData={widgetMetaData}
|
widgetMetaData={widgetMetaData}
|
||||||
data={widgetData[i]}
|
data={widgetData[i]}
|
||||||
reloadWidgetCallback={widgetData[i].omitReloadWidgetCallback ? () =>
|
reloadWidgetCallback={widgetData[i]?.omitReloadWidgetCallback ? () =>
|
||||||
{} : reloadWidget}
|
{} : reloadWidget}
|
||||||
storeDropdownSelections={widgetMetaData.storeDropdownSelections}
|
storeDropdownSelections={widgetMetaData.storeDropdownSelections}
|
||||||
/>
|
/>
|
||||||
|
Reference in New Issue
Block a user