From bc3e62bdd057f2f73ca130d97f9db8d7ddb9369d Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Wed, 2 Jan 2019 19:02:13 -0800 Subject: [PATCH] UploadAppData error state handled --- app-frontend/src/api/HttpClient.ts | 2 ++ .../apps/appDetails/deploy/BuildLogsView.tsx | 1 + .../apps/appDetails/deploy/TarUploader.tsx | 12 ++++++++++-- .../apps/oneclick/OneClickAppConfigPage.tsx | 1 + .../src/containers/monitoring/LoadBalancerStats.tsx | 1 + 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app-frontend/src/api/HttpClient.ts b/app-frontend/src/api/HttpClient.ts index 1aebad0..13899be 100644 --- a/app-frontend/src/api/HttpClient.ts +++ b/app-frontend/src/api/HttpClient.ts @@ -85,12 +85,14 @@ export default class HttpClient { return new Promise(function(resolve, reject) { // data.data here is the "data" field inside the API response! {status: 100, description: "Login succeeded", data: {…}} if (!self.isDestroyed) return resolve(data.data); + Logger.dev("Destroyed then not called"); }); }) .catch(function(error) { Logger.error(error); return new Promise(function(resolve, reject) { if (!self.isDestroyed) return reject(error); + Logger.dev("Destroyed catch not called"); }); }); }; diff --git a/app-frontend/src/containers/apps/appDetails/deploy/BuildLogsView.tsx b/app-frontend/src/containers/apps/appDetails/deploy/BuildLogsView.tsx index 3661fc0..eea7f81 100644 --- a/app-frontend/src/containers/apps/appDetails/deploy/BuildLogsView.tsx +++ b/app-frontend/src/containers/apps/appDetails/deploy/BuildLogsView.tsx @@ -30,6 +30,7 @@ export default class BuildLogsView extends ApiComponent< } componentWillUnmount() { + if (super.componentWillMount) super.componentWillMount(); if (this.fetchBuildLogsInterval) { clearInterval(this.fetchBuildLogsInterval); } diff --git a/app-frontend/src/containers/apps/appDetails/deploy/TarUploader.tsx b/app-frontend/src/containers/apps/appDetails/deploy/TarUploader.tsx index 0915077..37e4ce5 100644 --- a/app-frontend/src/containers/apps/appDetails/deploy/TarUploader.tsx +++ b/app-frontend/src/containers/apps/appDetails/deploy/TarUploader.tsx @@ -52,17 +52,25 @@ export default class TarUploader extends ApiComponent< startUploadAndDeploy() { const self = this; + const file = self.state.fileToBeUploaded!; + self.setState({ fileToBeUploaded: undefined }); + message.info("Upload has started"); + Promise.resolve() .then(function() { return self.apiManager.uploadAppData( self.props.appName, - self.state.fileToBeUploaded!.originFileObj! + file.originFileObj! ); }) .then(function() { self.props.onUploadSucceeded(); }) - .catch(Toaster.createCatcher()); + .catch( + Toaster.createCatcher(function() { + self.setState({ fileToBeUploaded: file }); + }) + ); } render() { diff --git a/app-frontend/src/containers/apps/oneclick/OneClickAppConfigPage.tsx b/app-frontend/src/containers/apps/oneclick/OneClickAppConfigPage.tsx index 220c713..fb80f5f 100644 --- a/app-frontend/src/containers/apps/oneclick/OneClickAppConfigPage.tsx +++ b/app-frontend/src/containers/apps/oneclick/OneClickAppConfigPage.tsx @@ -44,6 +44,7 @@ export default class OneClickAppConfigPage extends Component< } componentWillUnmount() { + if (super.componentWillMount) super.componentWillMount(); this.isUnmount = true; } diff --git a/app-frontend/src/containers/monitoring/LoadBalancerStats.tsx b/app-frontend/src/containers/monitoring/LoadBalancerStats.tsx index f01413c..fd0d2cf 100644 --- a/app-frontend/src/containers/monitoring/LoadBalancerStats.tsx +++ b/app-frontend/src/containers/monitoring/LoadBalancerStats.tsx @@ -61,6 +61,7 @@ export default class LoadBalancerStats extends ApiComponent< } componentWillUnmount() { + if (super.componentWillMount) super.componentWillMount(); if (this.updateApiInterval) { clearInterval(this.updateApiInterval); }