diff --git a/src/api/user.js b/src/api/user.js new file mode 100644 index 0000000..f5d5c34 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,15 @@ +import axios from 'axios'; + +export const updateUserInfo = async (token, userInfo) => { + try { + const response = await axios.patch('/api/member', userInfo, { + headers: { + Authorization: `Bearer ${token}`, + }, + }); + return response.data; + } catch (error) { + console.error('Failed to update user info', error); + throw error; + } +}; \ No newline at end of file diff --git a/src/components/Setting.jsx b/src/components/Setting.jsx index 022bb5c..b3c70e3 100644 --- a/src/components/Setting.jsx +++ b/src/components/Setting.jsx @@ -4,6 +4,7 @@ import { useForm } from "react-hook-form"; import PageContainer from "./common/PageContainer"; import { useGetUserInfo } from "../hooks/useGetUserInfo"; import { getCookie } from "../api/cookie"; +import { updateUserInfo } from "../api/user"; const Setting = () => { const {data} = useGetUserInfo(getCookie('accessToken')); @@ -21,7 +22,7 @@ const Setting = () => { useEffect(() => { if (data) { setProfileImage(data.profileImage); - setName(data.name); + setName(data.nickname); setEmail(data.email); setDescription(data.intro); } @@ -43,8 +44,21 @@ const Setting = () => { setIsEditing(true); }; - const handleSaveClick = () => { - setIsEditing(false); + const handleSaveClick = async () => { + try { + const token = getCookie('accessToken'); + const userInfo = { + nickname: name, + intro: description, + }; + const updatedData = await updateUserInfo(token, userInfo); + setIsEditing(false); + // 업데이트된 데이터를 상태에 반영 + setName(updatedData.name); + setDescription(updatedData.intro); + } catch (error) { + console.error('Failed to save user info', error); + } }; const handleEditTitleClick = () => { diff --git a/src/pages/MainPage.jsx b/src/pages/MainPage.jsx index c8b39f5..340c8d4 100644 --- a/src/pages/MainPage.jsx +++ b/src/pages/MainPage.jsx @@ -73,7 +73,7 @@ const MainPage = () => { ))} )} -