Просмотр исходного кода

Merge branch 'beta.3.integration-frontend' into main

sunguroku 5 лет назад
Родитель
Сommit
0f943cdaa0

+ 1 - 2
dashboard/src/main/home/Home.tsx

@@ -41,7 +41,7 @@ export default class Home extends Component<PropsType, StateType> {
   state = {
     forceSidebar: true,
     showWelcome: false,
-    currentView: 'dashboard',
+    currentView: 'provisioner',
     prevProjectId: null as number | null,
     viewData: null as any,
     forceRefreshClusters: false,
@@ -164,7 +164,6 @@ export default class Home extends Component<PropsType, StateType> {
         <Provisioner 
           setCurrentView={(x: string) => this.setState({ currentView: x })}
           viewData={this.state.viewData}
-          setRefreshClusters={(x: boolean) => this.setState({ forceRefreshClusters: x })}
         />
       );
     }

+ 23 - 4
dashboard/src/main/home/new-project/Provisioner.tsx

@@ -15,7 +15,6 @@ import { inflateRaw, inflateRawSync } from 'zlib';
 type PropsType = {
   viewData: any,
   setCurrentView: (x: string) => void,
-  setRefreshClusters: (x: boolean) => void,
 }
 
 type StateType = {
@@ -24,6 +23,7 @@ type StateType = {
   websockets: any[],
   maxStep : Record<string, number>,
   currentStep: Record<string, number>,
+  triggerEnd: boolean,
 };
 
 export default class Provisioner extends Component<PropsType, StateType> {
@@ -33,6 +33,7 @@ export default class Provisioner extends Component<PropsType, StateType> {
     websockets : [] as any[],
     maxStep: {} as Record<string, any>,
     currentStep: {} as Record<string, number>,
+    triggerEnd: false,
   }
 
   scrollToBottom = () => {
@@ -187,6 +188,24 @@ export default class Provisioner extends Component<PropsType, StateType> {
       </>
     )
   }
+
+  onEnd = () => {
+    let myInterval = setInterval(() => {
+      console.log('interval')
+      api.getClusters('<token>', {}, { id: this.context.currentProject.id }, (err: any, res: any) => {
+        if (err) {
+          console.log(err);
+        } else if (res.data) {
+          let clusters = res.data;
+          console.log('found clusters:', res.data);
+          if (clusters.length > 0) {
+            this.props.setCurrentView('dashboard');
+            clearInterval(myInterval);
+          }
+        }
+      });
+    }, 1000);
+  }
   
   render() {
     let maxStep = 0;
@@ -204,9 +223,9 @@ export default class Provisioner extends Component<PropsType, StateType> {
       }
     }
 
-    if (maxStep !== 0 && currentStep === maxStep) {
-      this.props.setRefreshClusters(true);
-      this.props.setCurrentView('dashboard');
+    if (maxStep !== 0 && currentStep === maxStep && !this.state.triggerEnd) {
+      this.onEnd()
+      this.setState({ triggerEnd: true });
     }
 
     return (