import React, { useState } from 'react'; import OutlinedInput from '@mui/material/OutlinedInput'; import Grid from '@mui/material/Grid'; import Button from '@mui/material/Button'; import { useNavigate } from 'react-router'; import { useRootContext } from '../../../contexts/RootContext'; import { getFieldPlaceHolder, shouldDisableSubmitBtn } from '../../../utils'; import Error from './Error'; export default function FormManager({ info, fields, error, isCredentialProvided }) { const navigate = useNavigate(); const { setError } = useRootContext(); const [inputs, setInputs] = useState({}); const handleUpdateInputs = (evt) => { setInputs({ ...inputs, [evt.target.name]: evt.target.value, }); }; const handleOnSubmit = (evt) => { evt.preventDefault(); setError(); const url = new URL(inputs['engine-websocket-url']); if (inputs['web-integration-id']) url.searchParams.append('qlik-web-integration-id', inputs['web-integration-id']); if (inputs['client-id']) url.searchParams.append('qlik-client-id', inputs['client-id']); navigate(`/app-list?engine_url=${url.toString().replace('?', '&')}`); }; return (
{fields.map((field, i) => ( x.toLowerCase()) .join('-')} error={info?.invalid} placeholder={i === 0 ? field : getFieldPlaceHolder({ field, isCredentialProvided })} onChange={(evt) => handleUpdateInputs(evt)} /> ))} {error && }
); }