import React, { useState, useEffect } from 'react' import login from './login.png'; import { Input, Button } from 'antd'; import { UserOutlined, LockOutlined } from '@ant-design/icons'; import 'antd/dist/antd.css'; const FETCH_TIMEOUT = 15000; function checkResponse(response) { if(response.status >= 400 && response.status < 600) { throw new Error(response.url + " failed"); } } async function fetchWithTimeout(url, options) { return Promise.race([ fetch(url, options).catch(err => { throw new Error(url + ' failed'); }), new Promise((_, reject) => setTimeout(() => reject(new Error(url + ' timeout')), FETCH_TIMEOUT)) ]); } async function getAvailable() { let available = await fetchWithTimeout("/account/available", { method: 'GET', timeout: FETCH_TIMEOUT } ); checkResponse(available); return await available.json() } function App() { const [available, setAvailable] = useState(0) const [username, setUsername] = useState('') const [password, setPassword] = useState('') useEffect(() => { getAvailable().then(a => { setAvailable(a) console.log(a) }).catch(err => { console.log(err) }) }, []) const Create = () => { if (available > 0) { return } return <>> } const onLogin = () => { console.log(username) console.log(password) } const onCreate = () => { console.log("create account") } return (