diff --git a/src/api/user.ts b/src/api/user.ts new file mode 100644 index 0000000..9f4b63f --- /dev/null +++ b/src/api/user.ts @@ -0,0 +1,6 @@ +import { authInstance } from "@/api/axios"; + +export const deleteUser = async () => { + const response = await authInstance.delete("/api/users"); + return response.data; +}; diff --git a/src/pages/MyInfo.tsx b/src/pages/MyInfo.tsx index 2dd2e71..03a2037 100644 --- a/src/pages/MyInfo.tsx +++ b/src/pages/MyInfo.tsx @@ -5,6 +5,7 @@ import useAuthStore from "@/store/useAuthStore"; import { useNavigate } from "react-router-dom"; import TermsAndPrivacyModal from "@/components/modal/TermsAndPrivacyModal"; import { trackEvent } from "@/libs/analytics"; +import { deleteUser } from "@/api/user"; type ModalType = "logout" | "withdraw" | "terms" | "privacy" | null; @@ -32,7 +33,7 @@ const MyInfo = () => { setModalType(null); }; - const handleConfirm = () => { + const handleConfirm = async () => { if (modalType === "logout") { trackEvent("Click", { page: "내 정보", @@ -45,7 +46,15 @@ const MyInfo = () => { page: "내 정보", element: "회원탈퇴" }); - console.log("회원탈퇴 실행"); //TODO: 회원탈퇴 기능 구현 시 추가 필요 + + try { + await deleteUser(); + logout(); + navigate("/"); + } catch (error) { + console.error(error); + navigate("/error"); + } } setModalType(null); };