diff --git a/src/components/EditUser.js b/src/components/EditUser.js index b77e130ac..32c6e6564 100644 --- a/src/components/EditUser.js +++ b/src/components/EditUser.js @@ -1,77 +1,72 @@ -import { useState, useEffect } from "react"; +import React, { useState, useEffect, useCallback } from "react"; +import FormControl from "@mui/material/FormControl"; +import Button from "@mui/material/Button"; +import TextField from "@mui/material/TextField"; +import { Grid } from "@mui/material"; import axios from "axios"; import { useNavigate, useParams } from "react-router-dom"; -export default function ListUser() { - const navigate = useNavigate(); +function EditUser() { + const navigate = useNavigate(); + const { id } = useParams(); + const [inputs, setInputs] = useState({ name: "", email: "", mobile: "" }); - const [inputs, setInputs] = useState([]); + const getUserDetails = useCallback(async () => { + try { + const response = await axios.get(`http://localhost:8888/api/user/${id}`); + const userData = response.data; + setInputs(userData); + } catch (error) { + console.error("Error fetching user details:", error); + } + }, [id]); - const {id} = useParams(); + useEffect(() => { + if (id) { + getUserDetails(); + } + }, [id, getUserDetails]); - useEffect(() => { - getUser(); - }, []); + const handleChange = (event) => { + const name = event.target.name; + const value = event.target.value; - function getUser() { - axios.get(`http://localhost:8888/api/user/${id}`).then(function(response) { - console.log(response.data); - setInputs(response.data); - }); - } + setInputs((prev) => { + return { ...prev, [name]: value }; + }); + }; - const handleChange = (event) => { - const name = event.target.name; - const value = event.target.value; - setInputs(values => ({...values, [name]: value})); - } - const handleSubmit = (event) => { - event.preventDefault(); + const submitHandle = async (event) => { + event.preventDefault(); - axios.put(`http://localhost:8888/api/user/${id}/edit`, inputs).then(function(response){ - console.log(response.data); - navigate('/'); - }); - + try { + const response = await axios.put(`http://localhost:8888/api/user/${id}`, inputs); + console.log(response.data); + navigate('/'); + } catch (error) { + console.error("Error Editing user:", error); } - return ( -