import {useNavigate, useParams} from "react-router-dom"; import {useEffect, useState} from "react"; import axiosClient from "../axios-client.js"; import {useStateContext} from "../context/ContextProvider.jsx"; export default function UserForm() { const navigate = useNavigate(); let {id} = useParams(); const [user, setUser] = useState({ id: null, name: '', email: '', password: '', password_confirmation: '' }) const [errors, setErrors] = useState(null) const [loading, setLoading] = useState(false) const {setNotification} = useStateContext() if (id) { useEffect(() => { setLoading(true) axiosClient.get(`/users/${id}`) .then(({data}) => { setLoading(false) setUser(data) }) .catch(() => { setLoading(false) }) }, []) } const onSubmit = ev => { ev.preventDefault() if (user.id) { axiosClient.put(`/users/${user.id}`, user) .then(() => { setNotification('User was successfully updated') navigate('/users') }) .catch(err => { const response = err.response; if (response && response.status === 422) { setErrors(response.data.errors) } }) } else { axiosClient.post('/users', user) .then(() => { setNotification('User was successfully created') navigate('/users') }) .catch(err => { const response = err.response; if (response && response.status === 422) { setErrors(response.data.errors) } }) } } return ( <> {user.id &&
{errors[key][0]}
))}