in website/src/components/HttpTester.js [10:83]
export default function HttpTester({
defaultEndpoint = 'http://127.0.0.1:5000/',
defaultKey = '',
}) {
const [endpoint, setEndpoint] = useState(defaultEndpoint);
const [formKey, setFormKey] = useState(defaultKey);
const [formValue, setFormValue] = useState('');
const [loading, setLoading] = useState(false);
const [result, setResult] = useState(null);
const [error, setError] = useState(null);
async function handleSubmit(e) {
e.preventDefault();
setLoading(true);
setResult(null);
setError(null);
const data = new FormData();
data.set(formKey, formValue);
const response = await fetch(endpoint, {
method: 'POST',
body: data,
});
setLoading(false);
if (!response.ok) {
setError('Something went wrong');
} else {
const jsonResult = await response.json();
setResult(JSON.stringify(jsonResult, null, 2));
}
}
return (
<div>
<form onSubmit={handleSubmit}>
<label>
Endpoint:
<input
type="text"
value={endpoint}
onChange={e => setEndpoint(e.target.value)}
/>
</label>
<div>
<label>
Key:
<input
type="text"
value={formKey}
onChange={e => setFormKey(e.target.value)}
/>
</label>
<label>
Value:
<input
type="text"
value={formValue}
onChange={e => setFormValue(e.target.value)}
/>
</label>
</div>
<input type="submit" value="Submit" />
</form>
{loading && <p>Loading...</p>}
{error && <p>{error}</p>}
{result && (
<div>
<pre>{result}</pre>
</div>
)}
</div>
);
}