Jelajahi Sumber

Fix autodetection in v1 create form (#3744)

Feroze Mohideen 2 tahun lalu
induk
melakukan
ec52570272

+ 6 - 1
dashboard/src/main/home/app-dashboard/build-settings/DetectDockerfileAndPorterYaml.tsx

@@ -19,6 +19,7 @@ type PropsType = {
   porterApp: PorterApp;
   updatePorterApp: (attrs: Partial<PorterApp>) => void;
   updateDockerfileFound: () => void;
+  setBuildpackView: () => void;
 };
 
 const DetectDockerfileAndPorterYaml: React.FC<PropsType> = ({
@@ -26,6 +27,7 @@ const DetectDockerfileAndPorterYaml: React.FC<PropsType> = ({
   porterApp,
   updatePorterApp,
   updateDockerfileFound,
+  setBuildpackView,
 }) => {
   const [showModal, setShowModal] = useState(false);
   const [loading, setLoading] = useState(true);
@@ -69,8 +71,11 @@ const DetectDockerfileAndPorterYaml: React.FC<PropsType> = ({
     );
 
     if (dockerFileItem) {
-      updatePorterApp({ dockerfile: dockerFileItem.path });
+      const path = dockerFileItem.path.startsWith("./") || dockerFileItem.path.startsWith("/") ? dockerFileItem.path : `./${dockerFileItem.path}`;
+      updatePorterApp({ dockerfile: path });
       updateDockerfileFound();
+    } else {
+      setBuildpackView();
     }
   }, [contents]);
 

+ 1 - 0
dashboard/src/main/home/app-dashboard/build-settings/SharedBuildSettings.tsx

@@ -133,6 +133,7 @@ const SharedBuildSettings: React.FC<Props> = ({
                   porterApp={porterApp}
                   updatePorterApp={updatePorterApp}
                   updateDockerfileFound={() => setBuildView("docker")}
+                  setBuildpackView={() => setBuildView("buildpacks")}
                 />
               )}
               <AdvancedBuildSettings

+ 1 - 0
dashboard/src/main/home/app-dashboard/new-app-flow/NewAppFlow.tsx

@@ -608,6 +608,7 @@ const NewAppFlow: React.FC<Props> = ({ ...props }) => {
                     setShowGHAModal(true);
                   }
                 }}
+                disabled={formState.serviceList.length === 0 || deploying}
                 status={
                   deploying ? (
                     "loading"

+ 2 - 2
dashboard/src/main/home/app-dashboard/new-app-flow/SourceSettings.tsx

@@ -16,7 +16,7 @@ type Props = RouteComponentProps & {
   setImageTag: (x: string) => void;
   setPorterYaml: (yaml: string, filename: string) => void;
   porterApp: PorterApp;
-  setPorterApp: (x: PorterApp) => void;
+  setPorterApp: React.Dispatch<React.SetStateAction<PorterApp>>;
   buildView: BuildMethod;
   setBuildView: (buildView: BuildMethod) => void;
   projectId: number;
@@ -45,7 +45,7 @@ const SourceSettings: React.FC<Props> = ({
           <SharedBuildSettings
             setPorterYaml={setPorterYaml}
             porterApp={porterApp}
-            updatePorterApp={(attrs: Partial<PorterApp>) => setPorterApp(PorterApp.setAttributes(porterApp, attrs))}
+            updatePorterApp={(attrs: Partial<PorterApp>) => setPorterApp((prev: PorterApp) => PorterApp.setAttributes(prev, attrs))}
             autoDetectionOn={true}
             canChangeRepo={true}
             buildView={buildView}