فهرست منبع

misc yaml v2 form fixes (#3591)

ianedwards 2 سال پیش
والد
کامیت
1d15836218

+ 0 - 1
dashboard/src/components/LogSearchBar.tsx

@@ -29,7 +29,6 @@ const LogSearchBar: React.FC<Props> = ({
         setSearchText(x);
       }}
       onEnter={() => {
-        alert("ok")
         setEnteredSearchText(escapeRegExp(searchText));
         setSelectedDate();
       }}

+ 4 - 0
dashboard/src/main/home/app-dashboard/create-app/CreateApp.tsx

@@ -412,6 +412,10 @@ const CreateApp: React.FC<CreateAppProps> = ({ history }) => {
     if (detectedName) {
       setValue("app.name", { value: detectedName, readOnly: true });
     }
+
+    if (!detectedName && name.readOnly) {
+      setValue("app.name", { value: "", readOnly: false });
+    }
   }, [servicesFromYaml, detectedName, detectedServices.detected]);
 
   useEffect(() => {

+ 9 - 3
dashboard/src/main/home/app-dashboard/create-app/RepoSettings.tsx

@@ -233,9 +233,15 @@ const RepoSettings: React.FC<Props> = ({
                       { value: "docker", label: "Docker" },
                       { value: "pack", label: "Buildpacks" },
                     ]}
-                    setValue={(option: string) =>
-                      setValue("app.build.method", option as BuildView)
-                    }
+                    setValue={(option: string) => {
+                      if (option == "docker") {
+                        setValue("app.build.method", "docker");4
+                      } else if (option == "pack") {
+                        // if toggling from docker to pack, initialize buildpacks to empty array
+                        setValue("app.build.method", "pack");
+                        setValue("app.build.buildpacks", []);
+                      }
+                    }}
                     label="Build method"
                   />
                   {match(build)

+ 4 - 2
dashboard/src/main/home/app-dashboard/validate-apply/services-settings/ServiceList.tsx

@@ -26,11 +26,12 @@ import {
   useFormContext,
 } from "react-hook-form";
 import { ControlledInput } from "components/porter/ControlledInput";
+import { zodResolver } from "@hookform/resolvers/zod";
 
 const addServiceFormValidator = z.object({
   name: z
     .string()
-    .min(1)
+    .min(1, { message: "A service name is required" })
     .max(30)
     .regex(/^[a-z0-9-]+$/, {
       message: 'Lowercase letters, numbers, and " - " only.',
@@ -66,7 +67,8 @@ const ServiceList: React.FC<ServiceListProps> = ({
     handleSubmit,
     formState: { errors },
   } = useForm<AddServiceFormValues>({
-    reValidateMode: "onSubmit",
+    reValidateMode: "onChange",
+    resolver: zodResolver(addServiceFormValidator),
     defaultValues: {
       name: "",
       type: "web",