From 57bf62389ca1250eb171ed8e9ff98fa1f2620658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=91=ED=98=84?= Date: Sat, 16 Sep 2023 22:20:48 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=ED=9A=8C=EC=9B=90=ED=83=88=ED=87=B4=20?= =?UTF-8?q?=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=EC=95=84=EC=9B=83,=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=EC=82=AD=EC=A0=9C=20=ED=9A=8C=EC=9B=90=ED=83=88?= =?UTF-8?q?=ED=87=B4=20=ED=9B=85=EC=97=90=EC=84=9C=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=95=84=EC=9B=83=20=EC=A0=84=EC=97=AD=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EB=B3=80=EB=8F=99,=20=EC=97=91=EC=84=B8=EC=8A=A4=ED=86=A0?= =?UTF-8?q?=ED=81=B0=EC=9D=84=20=EB=A1=9C=EC=BB=AC=20=EC=8A=A4=ED=86=A0?= =?UTF-8?q?=EB=A6=AC=EC=A7=80=EC=97=90=EC=84=9C=20=EC=82=AD=EC=A0=9C=20Iss?= =?UTF-8?q?ues=20#70?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Profile/memberWithdrawalModal.tsx | 2 ++ client/src/hooks/useDeleteMembers.ts | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/src/components/Profile/memberWithdrawalModal.tsx b/client/src/components/Profile/memberWithdrawalModal.tsx index 4ed67741..1d6efbb0 100644 --- a/client/src/components/Profile/memberWithdrawalModal.tsx +++ b/client/src/components/Profile/memberWithdrawalModal.tsx @@ -2,12 +2,14 @@ import React, { useState } from 'react'; import styled from 'styled-components'; import { useDeleteMember } from '../../hooks/useDeleteMembers'; + const MemberWithdrawalModal: React.FC = ({ onClose }) => { const [inputString, setInputString] = useState(''); const [errorMsg, setErrorMsg] = useState(null); const deleteMemberMutation = useDeleteMember(); + const withdrawalTitle = "StockHolm에서 탈퇴하시겠습니까?"; const inputStringLabel = "다음 문자열을 입력해주세요: Codestates"; const incorrectStringMsg = "문자열이 일치하지 않습니다!"; diff --git a/client/src/hooks/useDeleteMembers.ts b/client/src/hooks/useDeleteMembers.ts index 647ee783..4683e0b5 100644 --- a/client/src/hooks/useDeleteMembers.ts +++ b/client/src/hooks/useDeleteMembers.ts @@ -1,16 +1,27 @@ import { useMutation } from 'react-query'; import axios from 'axios'; +import { useDispatch } from 'react-redux'; // <-- 이 부분을 추가하세요. +import { setLogoutState } from '../reducer/member/loginSlice'; export function useDeleteMember() { - return useMutation(async () => { - const response = await axios.delete(`http://ec2-13-125-246-160.ap-northeast-2.compute.amazonaws.com/members/`); + const dispatch = useDispatch(); // <-- useDispatch를 호출해 dispatch 함수를 가져옵니다. + + return useMutation(async () => { + const response = await axios.delete(`http://ec2-13-125-246-160.ap-northeast-2.compute.amazonaws.com/members`, {}); if (response.status !== 204) { throw new Error('Failed to delete member'); } }, { onSuccess: () => { - alert('회원탈퇴 되었습니다!'); + // 토큰 삭제 + localStorage.removeItem('accessToken'); + + // 로그아웃 상태로 변경 + dispatch(setLogoutState()); + + // 페이지 새로고침 (선택사항) + window.location.reload(); } }); -} +} \ No newline at end of file