Alexander Belanger 4 лет назад
Родитель
Сommit
109410aa73

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

@@ -223,7 +223,10 @@ class Home extends Component<PropsType, StateType> {
       const res = await api.getOnboardingState("<token>", {}, { project_id });
 
       if (res?.data && res?.data.current_step !== "clean_up") {
-        this.redirectToOnboarding();
+        // this.redirectToOnboarding();
+        this.context.setHasFinishedOnboarding(false);
+      } else {
+        this.context.setHasFinishedOnboarding(true);
       }
     } catch (error) {}
   }

+ 44 - 0
dashboard/src/main/home/onboarding/components/RegistryList.tsx

@@ -0,0 +1,44 @@
+import React, { useEffect, useState } from "react";
+import api from "shared/api";
+
+const RegistryImageList: React.FC<{
+  project: {
+    id: number;
+    name: string;
+  };
+  registry_id: number;
+}> = ({ project, registry_id }) => {
+  const [imageList, setImageList] = useState([]);
+
+  useEffect(() => {
+    api
+      .getImageRepos(
+        "<token>",
+        {},
+        {
+          project_id: project.id,
+          registry_id,
+        }
+      )
+      .then((res) => {
+        if (!res?.data) {
+          throw new Error("No data found");
+        }
+
+        setImageList(res.data);
+      })
+      .catch(console.error);
+    return () => {};
+  }, []);
+  return (
+    <div>
+      {imageList.map((data) => (
+        <div>
+          Name{data.name}, timestamp: {data.created_at}, URI: {data.uri}
+        </div>
+      ))}
+    </div>
+  );
+};
+
+export default RegistryImageList;

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

@@ -108,6 +108,7 @@ const decompressState = (prev_state: any) => {
       id: state?.registry_connection_data?.id,
     },
     settings: {
+      registry_connection_id: state?.registry_connection_id,
       registry_name: state?.registry_connection_data?.name,
     },
   };

+ 9 - 2
dashboard/src/main/home/onboarding/steps/ConnectRegistry/forms/_AWSRegistryForm.tsx

@@ -8,6 +8,8 @@ import api from "shared/api";
 import { useSnapshot } from "valtio";
 import { OFState } from "../../../state/index";
 import IntegrationCategories from "main/home/integrations/IntegrationCategories";
+import { StateHandler } from "main/home/onboarding/state/StateHandler";
+import RegistryImageList from "main/home/onboarding/components/RegistryList";
 
 const regionOptions = [
   { value: "us-east-1", label: "US East (N. Virginia) us-east-1" },
@@ -201,7 +203,7 @@ export const SettingsForm: React.FC<{
         placeholder="ex: porter-awesome-registry"
         width="100%"
       />
-
+      <Br />
       <SaveButton
         text="Connect Registry"
         disabled={false}
@@ -218,9 +220,14 @@ export const SettingsForm: React.FC<{
 export const TestRegistryConnection: React.FC<{ nextFormStep: () => void }> = ({
   nextFormStep,
 }) => {
+  const snap = useSnapshot(StateHandler);
+  console.log(snap.connected_registry.settings);
   return (
     <>
-      <IntegrationCategories category={"registry"} />
+      <RegistryImageList
+        project={snap.project}
+        registry_id={snap.connected_registry.settings.registry_connection_id}
+      />
       <SaveButton
         text="Continue"
         disabled={false}

+ 6 - 0
dashboard/src/main/home/onboarding/steps/ConnectRegistry/forms/_DORegistryForm.tsx

@@ -109,6 +109,7 @@ export const SettingsForm: React.FC<{
         width="100%"
         isRequired={true}
       />
+      <Br />
       <SaveButton
         text="Connect Registry"
         disabled={false}
@@ -141,6 +142,11 @@ export const TestRegistryConnection: React.FC<{
   );
 };
 
+const Br = styled.div`
+  width: 100%;
+  height: 10px;
+`;
+
 const CodeBlock = styled.span`
   display: inline-block;
   background-color: #1b1d26;

+ 1 - 0
dashboard/src/main/home/onboarding/steps/ConnectRegistry/forms/_GCPRegistryForm.tsx

@@ -186,6 +186,7 @@ export const SettingsForm: React.FC<{
         width="100%"
         isRequired={true}
       />
+      <Br />
       <SaveButton
         text="Continue"
         disabled={false}

+ 6 - 0
dashboard/src/main/home/onboarding/steps/ProvisionResources/forms/_DOProvisionerForm.tsx

@@ -214,6 +214,7 @@ export const SettingsForm: React.FC<{
         width="100%"
         isRequired={true}
       />
+      <Br />
       <SaveButton
         text="Connect Registry"
         disabled={false}
@@ -240,6 +241,11 @@ export const Status: React.FC<{
   );
 };
 
+const Br = styled.div`
+  width: 100%;
+  height: 10px;
+`;
+
 const CodeBlock = styled.span`
   display: inline-block;
   background-color: #1b1d26;

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

@@ -236,6 +236,7 @@ export const SettingsForm: React.FC<{
         width="100%"
         isRequired={true}
       />
+      <Br />
       <SaveButton
         text="Continue"
         disabled={false}

+ 6 - 0
dashboard/src/shared/Context.tsx

@@ -58,6 +58,8 @@ export interface GlobalContextType {
   usage: UsageData;
   setUsage: (usage: UsageData) => void;
   queryUsage: (retry?: number) => Promise<void>;
+  hasFinishedOnboarding: boolean;
+  setHasFinishedOnboarding: (onboardingStatus: boolean) => void;
 }
 
 /**
@@ -175,6 +177,10 @@ class ContextProvider extends Component<PropsType, StateType> {
           }
         });
     },
+    hasFinishedOnboarding: false,
+    setHasFinishedOnboarding: (onboardingStatus) => {
+      this.setState({ hasFinishedOnboarding: onboardingStatus });
+    },
   };
 
   render() {

+ 2 - 0
dashboard/src/shared/types.tsx

@@ -303,6 +303,8 @@ export interface ContextProps {
   usage: UsageData;
   setUsage: (usage: UsageData) => void;
   queryUsage: () => Promise<void>;
+  hasFinishedOnboarding: boolean;
+  setHasFinishedOnboarding: (onboardingStatus: boolean) => void;
 }
 
 export enum JobStatusType {