Explorar o código

fix for input field

Ivan Galakhov %!s(int64=4) %!d(string=hai) anos
pai
achega
5a9df79a30
Modificáronse 1 ficheiros con 22 adicións e 19 borrados
  1. 22 19
      dashboard/src/components/porter-form/field-components/Input.tsx

+ 22 - 19
dashboard/src/components/porter-form/field-components/Input.tsx

@@ -6,6 +6,7 @@ import {
   InputField,
   InputField,
   StringInputFieldState,
   StringInputFieldState,
 } from "../types";
 } from "../types";
+import { hasSetValue } from "../utils";
 
 
 const clipOffUnit = (unit: string, x: string) => {
 const clipOffUnit = (unit: string, x: string) => {
   if (typeof x === "string" && unit) {
   if (typeof x === "string" && unit) {
@@ -16,17 +17,19 @@ const clipOffUnit = (unit: string, x: string) => {
   return x;
   return x;
 };
 };
 
 
-const Input: React.FC<InputField> = ({
-  id,
-  variable,
-  label,
-  required,
-  placeholder,
-  info,
-  settings,
-  isReadOnly,
-  value,
-}) => {
+const Input: React.FC<InputField> = (props) => {
+  const {
+    id,
+    variable,
+    label,
+    required,
+    placeholder,
+    info,
+    settings,
+    isReadOnly,
+    value,
+  } = props;
+
   const {
   const {
     state,
     state,
     variables,
     variables,
@@ -34,14 +37,12 @@ const Input: React.FC<InputField> = ({
     setValidation,
     setValidation,
   } = useFormField<StringInputFieldState>(id, {
   } = useFormField<StringInputFieldState>(id, {
     initValidation: {
     initValidation: {
-      validated: value
-        ? value[0] !== undefined && value[0] !== "" && value[0] != null
-        : settings?.default != undefined,
+      validated: hasSetValue(props),
     },
     },
     initVars: {
     initVars: {
-      [variable]: value
+      [variable]: hasSetValue(props)
         ? clipOffUnit(settings?.unit, value[0])
         ? clipOffUnit(settings?.unit, value[0])
-        : settings?.default,
+        : undefined,
     },
     },
   });
   });
 
 
@@ -93,10 +94,12 @@ export const getFinalVariablesForStringInput: GetFinalVariablesFunction = (
   props: InputField
   props: InputField
 ) => {
 ) => {
   const val =
   const val =
-    vars[props.variable] ||
-    (props.value
+    vars[props.variable] != undefined && vars[props.variable] != null
+      ? vars[props.variable]
+      : hasSetValue(props)
       ? clipOffUnit(props.settings?.unit, props.value[0])
       ? clipOffUnit(props.settings?.unit, props.value[0])
-      : props.settings?.default);
+      : undefined;
+
   return {
   return {
     [props.variable]:
     [props.variable]:
       props.settings?.unit && !props.settings.omitUnitFromValue
       props.settings?.unit && !props.settings.omitUnitFromValue