function InputField()

in tools/awps-tunnel/client/src/panels/sections/SubprotocolClientSection.tsx [66:101]


function InputField({
  required,
  label,
  value,
  placeholder,
  multiline,
  validationMessage,
  onChange,
}: {
  label: string;
  value: string;
  placeholder: string;
  multiline?: boolean;
  required?: boolean;
  validationMessage?: string;
  onChange: (ev: any, data: any) => void;
}) {
  const [init, setInit] = useState(true);
  useEffect(() => {
    // disable validation check when the component is first mounted
    if (value && init) {
      setInit(false);
    }
  }, [value, init]);
  return (
    <Field
      required={required}
      label={label}
      orientation="horizontal"
      validationState={!init && required && !value ? "error" : "none"}
      validationMessage={!init && required && !value ? validationMessage : ""}
    >
      {multiline ? <Textarea placeholder={placeholder} onChange={onChange} /> : <Input placeholder={placeholder} onChange={onChange} />}
    </Field>
  );
}