Jelajahi Sumber

Implement repo selector on deployment list

jnfrati 4 tahun lalu
induk
melakukan
51e202c3e4

+ 20 - 0
dashboard/src/main/home/cluster-dashboard/preview-environments/deployments/DeploymentList.tsx

@@ -15,6 +15,7 @@ const DeploymentList = ({ environments }: { environments: Environment[] }) => {
   const [hasError, setHasError] = useState(false);
   const [hasError, setHasError] = useState(false);
   const [deploymentList, setDeploymentList] = useState<PRDeployment[]>([]);
   const [deploymentList, setDeploymentList] = useState<PRDeployment[]>([]);
   const [statusSelectorVal, setStatusSelectorVal] = useState<string>("all");
   const [statusSelectorVal, setStatusSelectorVal] = useState<string>("all");
+  const [selectedRepo, setSelectedRepo] = useState("all");
 
 
   const { currentProject, currentCluster } = useContext(Context);
   const { currentProject, currentCluster } = useContext(Context);
 
 
@@ -109,6 +110,16 @@ const DeploymentList = ({ environments }: { environments: Environment[] }) => {
     });
     });
   };
   };
 
 
+  const repoOptions = environments
+    .map((env) => ({
+      label: `${env.git_repo_owner}/${env.git_repo_name}`,
+      value: `${env.git_repo_owner}/${env.git_repo_name}`,
+    }))
+    .concat({
+      label: "All",
+      value: "all",
+    });
+
   return (
   return (
     <Container>
     <Container>
       <ControlRow>
       <ControlRow>
@@ -148,6 +159,15 @@ const DeploymentList = ({ environments }: { environments: Environment[] }) => {
               closeOverlay={true}
               closeOverlay={true}
             />
             />
           </StyledStatusSelector>
           </StyledStatusSelector>
+          <Selector
+            activeValue={selectedRepo}
+            setActiveValue={(val) => setSelectedRepo(val)}
+            options={repoOptions}
+            dropdownLabel="Repository"
+            width="200px"
+            dropdownWidth="300px"
+            closeOverlay
+          ></Selector>
         </ActionsWrapper>
         </ActionsWrapper>
       </ControlRow>
       </ControlRow>
       <EventsGrid>{renderDeploymentList()}</EventsGrid>
       <EventsGrid>{renderDeploymentList()}</EventsGrid>