From dfe5a0493886136620ec3046d315b8d1159503d5 Mon Sep 17 00:00:00 2001 From: Yongjie Zhao Date: Wed, 10 Aug 2022 11:35:06 +0800 Subject: [PATCH] fix: unable to show view as table modal (#21025) --- .../DataTablesPane/components/useResultsPane.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx b/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx index 82e8377abd4d2..9b6b597c7900f 100644 --- a/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx +++ b/superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx @@ -35,7 +35,7 @@ const Error = styled.pre` margin-top: ${({ theme }) => `${theme.gridUnit * 4}px`}; `; -const cache = new WeakSet(); +const cache = new WeakMap(); export const useResultsPane = ({ isRequest, @@ -59,6 +59,14 @@ export const useResultsPane = ({ useEffect(() => { // it's an invalid formData when gets a errorMessage if (errorMessage) return; + if (isRequest && cache.has(queryFormData)) { + setResultResp(ensureIsArray(cache.get(queryFormData))); + setResponseError(''); + if (queryForce && actions) { + actions.setForceQuery(false); + } + setIsLoading(false); + } if (isRequest && !cache.has(queryFormData)) { setIsLoading(true); getChartDataRequest({ @@ -71,7 +79,7 @@ export const useResultsPane = ({ .then(({ json }) => { setResultResp(ensureIsArray(json.result)); setResponseError(''); - cache.add(queryFormData); + cache.set(queryFormData, json.result); if (queryForce && actions) { actions.setForceQuery(false); }