Ivan Galakhov 4 лет назад
Родитель
Сommit
ebae24f468

+ 11 - 0
dashboard/src/components/form-refactor/PorterFormContextProvider.tsx

@@ -198,6 +198,17 @@ export const PorterFormContextProvider: React.FC<Props> = (props) => {
                     },
                   };
                 }
+                if (field.type == "env-key-value-array") {
+                  return {
+                    ...field,
+                    type: "key-value-array",
+                    secretOption: true,
+                    envLoader: true,
+                    settings: {
+                      type: "env",
+                    },
+                  };
+                }
                 return field;
               }),
             };

+ 14 - 1
dashboard/src/components/form-refactor/field-components/KeyValueArray.tsx

@@ -151,7 +151,20 @@ const KeyValueArray: React.FC<Props> = (props) => {
               })
             }
             setValues={(values) => {
-              alert("not implemented yet");
+              setState((prev) => {
+                return {
+                  // might be broken
+                  values: {
+                    ...prev.values,
+                    ...Object.entries(values).map(([k, v]) => {
+                      return {
+                        key: k,
+                        value: v,
+                      };
+                    }),
+                  },
+                };
+              });
             }}
           />
         </Modal>

+ 3 - 0
dashboard/src/components/form-refactor/types.ts

@@ -66,6 +66,9 @@ export interface KeyValueArrayField extends GenericInputField {
   secretOption?: boolean;
   envLoader?: boolean;
   fileUpload?: boolean;
+  settings?: {
+    type: "env"|"normal";
+  }
 }
 
 export interface ArrayInputField extends GenericInputField {

+ 1 - 1
dashboard/src/components/values-form/FormDebugger.tsx

@@ -384,7 +384,7 @@ tabs:
       label: Environment Variables
     - type: subtitle
       label: Set environment variables for your secrets and environment-specific configuration.
-    - type: key-value-array
+    - type: env-key-value-array
       label: 
       variable: container.env.normal
 - name: advanced