浏览代码

resolve breadcrumb confl

jusrhee 4 年之前
父节点
当前提交
627097e271

+ 14 - 14
dashboard/src/components/Breadcrumb.tsx

@@ -1,28 +1,28 @@
 import { Steps } from "main/home/onboarding/types";
 import { Steps } from "main/home/onboarding/types";
-import React, { useState } from "react";
+import React, { Fragment, useState } from "react";
 
 
 import styled from "styled-components";
 import styled from "styled-components";
 
 
 type Props = {
 type Props = {
   currentStep: string;
   currentStep: string;
-  steps: { value: string, label: string }[];
-  onClickStep?: (step: string) => void;
+  steps: { value: string; label: string }[];
+  onClickStep: (step: string) => void;
 };
 };
 
 
 const Breadcrumb: React.FC<Props> = ({ currentStep, steps, onClickStep }) => {
 const Breadcrumb: React.FC<Props> = ({ currentStep, steps, onClickStep }) => {
   return (
   return (
     <StyledBreadcrumb>
     <StyledBreadcrumb>
-      {steps.map((step: { value: string, label: string }, i: number) => {
+      {steps.map((step: { value: string; label: string }, i: number) => {
         return (
         return (
-          <>
-          <Crumb
-            bold={currentStep === step.value}
-            onClick={() => onClickStep && onClickStep(step.value)}
-          >
-            {step.label}
-          </Crumb>
-          {i !== steps.length - 1 && " > "}
-          </>
+          <Fragment key={i}>
+            <Crumb
+              bold={currentStep === step.value}
+              onClick={() => onClickStep && onClickStep(step.value)}
+            >
+              {step.label}
+            </Crumb>
+            {i !== steps.length - 1 && " > "}
+          </Fragment>
         );
         );
       })}
       })}
     </StyledBreadcrumb>
     </StyledBreadcrumb>
@@ -39,4 +39,4 @@ const Crumb = styled.span<{ bold: boolean }>`
   font-weight: ${props => props.bold ? "600" : "normal"};
   font-weight: ${props => props.bold ? "600" : "normal"};
   color: ${props => props.bold ? "#ffffff" : "#aaaabb"};
   color: ${props => props.bold ? "#ffffff" : "#aaaabb"};
   font-size: 13px;
   font-size: 13px;
-`;
+`;

+ 2 - 2
dashboard/src/main/home/onboarding/state/index.ts

@@ -121,9 +121,9 @@ const decompressState = (prev_state: any) => {
 
 
   let provision: any = {
   let provision: any = {
     skip: state.skip_resource_provision,
     skip: state.skip_resource_provision,
-    provider: state.resource_provision_provider,
+    provider: state.cluster_infra_provider,
     credentials: {
     credentials: {
-      id: state.resource_provision_credentials_id,
+      id: state.cluster_infra_credential_id,
     },
     },
     settings: {
     settings: {
       cluster_name: state.resource_provision_settings_cluster_name,
       cluster_name: state.resource_provision_settings_cluster_name,

+ 1 - 0
dashboard/src/main/home/onboarding/steps/ProvisionResources/ProvisionResources.tsx

@@ -57,6 +57,7 @@ const ProvisionResources: React.FC<Props> = ({
               onSaveCredentials={onSaveCredentials}
               onSaveCredentials={onSaveCredentials}
               onSaveSettings={onSaveSettings}
               onSaveSettings={onSaveSettings}
               project={project}
               project={project}
+              goBack={goBack}
             />
             />
           </>
           </>
         );
         );

+ 1 - 1
dashboard/src/main/home/onboarding/steps/ProvisionResources/ProvisionResourcesWrapper.tsx

@@ -21,7 +21,7 @@ const ProvisionResourcesWrapper = () => {
       onSaveSettings={(data) => OFState.actions.nextStep("continue", data)}
       onSaveSettings={(data) => OFState.actions.nextStep("continue", data)}
       onSuccess={() => OFState.actions.nextStep("continue")}
       onSuccess={() => OFState.actions.nextStep("continue")}
       onSkip={() => OFState.actions.nextStep("skip")}
       onSkip={() => OFState.actions.nextStep("skip")}
-      enable_go_back={snap.StepHandler.canGoBack}
+      enable_go_back={snap.StepHandler.canGoBack && !snap.StepHandler.isSubFlow}
       goBack={() => OFState.actions.nextStep("go_back")}
       goBack={() => OFState.actions.nextStep("go_back")}
     />
     />
   );
   );

+ 3 - 1
dashboard/src/main/home/onboarding/steps/ProvisionResources/forms/FormFlow.tsx

@@ -62,6 +62,7 @@ type Props = {
   provider: SupportedProviders | "external";
   provider: SupportedProviders | "external";
   currentStep: "credentials" | "settings";
   currentStep: "credentials" | "settings";
   project: { id: number; name: string };
   project: { id: number; name: string };
+  goBack: () => void;
 };
 };
 
 
 const FormFlowWrapper: React.FC<Props> = ({
 const FormFlowWrapper: React.FC<Props> = ({
@@ -70,6 +71,7 @@ const FormFlowWrapper: React.FC<Props> = ({
   provider,
   provider,
   currentStep,
   currentStep,
   project,
   project,
+  goBack,
 }) => {
 }) => {
   const nextFormStep = (
   const nextFormStep = (
     data?: Partial<Exclude<ProvisionerConfig, SkipProvisionConfig>>
     data?: Partial<Exclude<ProvisionerConfig, SkipProvisionConfig>>
@@ -103,7 +105,7 @@ const FormFlowWrapper: React.FC<Props> = ({
   return (
   return (
     <FormWrapper>
     <FormWrapper>
       <FormHeader>
       <FormHeader>
-        <CloseButton onClick={() => alert("go back")}>
+        <CloseButton onClick={() => goBack()}>
           <i className="material-icons">keyboard_backspace</i>
           <i className="material-icons">keyboard_backspace</i>
         </CloseButton>
         </CloseButton>
         {FormTitle[provider] && <img src={FormTitle[provider].icon} />}
         {FormTitle[provider] && <img src={FormTitle[provider].icon} />}