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>
);
}