Skip to content

Commit

Permalink
feat: spinner for imports (#15055)
Browse files Browse the repository at this point in the history
* Update tests

* feat: spinner for imports

* Use loading button instead

* Small fixes

* Small fix
  • Loading branch information
betodealmeida committed Jun 9, 2021
1 parent 2d3f552 commit 1db92cc
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
1 change: 1 addition & 0 deletions superset-frontend/src/components/Button/index.tsx
Expand Up @@ -62,6 +62,7 @@ export interface ButtonProps {
href?: string;
htmlType?: 'button' | 'submit' | 'reset';
cta?: boolean;
loading?: boolean | { delay?: number | undefined } | undefined;
}

export default function Button(props: ButtonProps) {
Expand Down
15 changes: 13 additions & 2 deletions superset-frontend/src/components/ImportModal/index.tsx
Expand Up @@ -136,13 +136,15 @@ const ImportModelsModal: FunctionComponent<ImportModelsModalProps> = ({
);
const [confirmedOverwrite, setConfirmedOverwrite] = useState<boolean>(false);
const [fileList, setFileList] = useState<UploadFile[]>([]);
const [importingModel, setImportingModel] = useState<boolean>(false);

const clearModal = () => {
setFileList([]);
setPasswordFields([]);
setPasswords({});
setNeedsOverwriteConfirm(false);
setConfirmedOverwrite(false);
setImportingModel(false);
};

const handleErrorMsg = (msg: string) => {
Expand All @@ -157,10 +159,16 @@ const ImportModelsModal: FunctionComponent<ImportModelsModalProps> = ({

useEffect(() => {
setPasswordFields(passwordsNeeded);
if (passwordsNeeded.length > 0) {
setImportingModel(false);
}
}, [passwordsNeeded, setPasswordFields]);

useEffect(() => {
setNeedsOverwriteConfirm(alreadyExists.length > 0);
if (alreadyExists.length > 0) {
setImportingModel(false);
}
}, [alreadyExists, setNeedsOverwriteConfirm]);

// Functions
Expand All @@ -175,6 +183,7 @@ const ImportModelsModal: FunctionComponent<ImportModelsModalProps> = ({
return;
}

setImportingModel(true);
importResource(
fileList[0].originFileObj,
passwords,
Expand Down Expand Up @@ -270,7 +279,9 @@ const ImportModelsModal: FunctionComponent<ImportModelsModalProps> = ({
name="model"
className="import-model-modal"
disablePrimaryButton={
fileList.length === 0 || (needsOverwriteConfirm && !confirmedOverwrite)
fileList.length === 0 ||
(needsOverwriteConfirm && !confirmedOverwrite) ||
importingModel
}
onHandledPrimaryAction={onUpload}
onHide={hide}
Expand All @@ -292,7 +303,7 @@ const ImportModelsModal: FunctionComponent<ImportModelsModalProps> = ({
// upload is handled by hook
customRequest={() => {}}
>
<Button>Select file</Button>
<Button loading={importingModel}>Select file</Button>
</Upload>
</StyledInputContainer>
{renderPasswordFields()}
Expand Down

0 comments on commit 1db92cc

Please sign in to comment.