function don't alter state
Unanswered
West African Lion posted this in #help-forum
West African LionOP
I have a function for login, but is doesn't change the error state.
const { login } = useAuth()
const [erro, setErro] = useState(null)
const [email, setEmail] = useState('')
const [password, setPassword] = useState('')
async function handleLogin(e: any) {
e.preventDefault()
const data = {
email,
password
}
try {
await login(data)
} catch (erro) {
console.log(erro)
setErro(erro)
return
}
setErro(null)
}
async function login(data: LoginData) {
setLoading(true)
const response = await fetch(BASE_URL_API + '/login', {
method: 'POST',
body: JSON.stringify(data)
})
if (!response.ok) {
const responseObj = await response.json()
setLoading(false)
throw new Error(responseObj.erro)
}
const { token, user } = await response.json()
Cookies.set('token', token, {
expires: 7/24
})
setUser(user)
router.push('/chat')
setLoading(false)
return
}