From 49f3adfb607b34381a403011e18241c97efdef04 Mon Sep 17 00:00:00 2001 From: Jack Fragassi Date: Tue, 18 Apr 2023 10:00:14 -0700 Subject: [PATCH] feat: Add loading state to sqllab save/overwrite dataset modal (#23697) --- .../src/SqlLab/components/SaveDatasetModal/index.tsx | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx index 402e26462e04..b1ab18eb09a9 100644 --- a/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx +++ b/superset-frontend/src/SqlLab/components/SaveDatasetModal/index.tsx @@ -174,6 +174,7 @@ export const SaveDatasetModal = ({ const [selectedDatasetToOverwrite, setSelectedDatasetToOverwrite] = useState< SelectValue | undefined >(undefined); + const [loading, setLoading] = useState(false); const user = useSelector(user => getInitialState(user), @@ -197,6 +198,7 @@ export const SaveDatasetModal = ({ setShouldOverwriteDataset(true); return; } + setLoading(true); const [, key] = await Promise.all([ updateDataset( datasource?.dbId, @@ -220,6 +222,7 @@ export const SaveDatasetModal = ({ }), }), ]); + setLoading(false); const url = mountExploreUrl(null, { [URL_PARAMS.formDataKey.name]: key, @@ -269,6 +272,7 @@ export const SaveDatasetModal = ({ ); const handleSaveInDataset = () => { + setLoading(true); const selectedColumns = datasource?.columns ?? []; // The filters param is only used to test jinja templates. @@ -306,6 +310,7 @@ export const SaveDatasetModal = ({ }), ) .then((key: string) => { + setLoading(false); const url = mountExploreUrl(null, { [URL_PARAMS.formDataKey.name]: key, }); @@ -314,6 +319,7 @@ export const SaveDatasetModal = ({ onHide(); }) .catch(() => { + setLoading(false); addDangerToast(t('An error occurred saving dataset')); }); }; @@ -356,6 +362,7 @@ export const SaveDatasetModal = ({ disabled={disableSaveAndExploreBtn} buttonStyle="primary" onClick={handleSaveInDataset} + loading={loading} > {buttonTextOnSave} @@ -370,6 +377,7 @@ export const SaveDatasetModal = ({ buttonStyle="primary" onClick={handleOverwriteDataset} disabled={disableSaveAndExploreBtn} + loading={loading} > {buttonTextOnOverwrite}