From 774cc09fec6969bcf57d89d597a1ecea534de07c Mon Sep 17 00:00:00 2001 From: KIM_DEAHO <102588838+DHowor1d@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:35:34 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=84=A4=EC=A0=95=20api=20patch=20?= =?UTF-8?q?=EC=97=B0=EB=8F=99=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/user.js | 15 +++++++++++++++ src/components/Setting.jsx | 20 +++++++++++++++++--- src/pages/MainPage.jsx | 2 +- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 src/api/user.js 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 = () => { ))} )} -