'use client'; import { useState } from "react"; import { useRouter } from "next/navigation"; import ModalCloseSvg from "../svgs/closexsvg"; type Props = { open: boolean; onClose: () => void; onConfirm?: () => void; }; export default function AccountDeleteModal({ open, onClose, onConfirm }: Props) { const router = useRouter(); const [isLoading, setIsLoading] = useState(false); const handleConfirm = async () => { if (onConfirm) { onConfirm(); return; } setIsLoading(true); try { const token = localStorage.getItem('token'); if (!token) { alert('로그인이 필요합니다.'); setIsLoading(false); onClose(); router.push('/login'); return; } console.log('회원 탈퇴 요청 시작, 토큰 존재:', !!token); console.log('토큰 길이:', token?.length); console.log('토큰 시작 부분:', token?.substring(0, 20)); const response = await fetch('https://hrdi.coconutmeet.net/auth/delete/me', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${token}`, }, }); console.log('회원 탈퇴 응답 상태:', response.status); if (!response.ok) { let errorMessage = `회원 탈퇴 실패 (${response.status})`; try { const errorData = await response.json(); console.error('회원 탈퇴 API 오류 응답:', errorData); if (errorData.error) { errorMessage = errorData.error; } else if (errorData.message) { errorMessage = errorData.message; } else if (errorData.errorMessage) { errorMessage = errorData.errorMessage; } else if (response.statusText) { errorMessage = `${response.statusText} (${response.status})`; } } catch (parseError) { console.error('응답 파싱 오류:', parseError); if (response.statusText) { errorMessage = `${response.statusText} (${response.status})`; } } console.error('회원 탈퇴 실패:', errorMessage, '상태 코드:', response.status); alert(errorMessage); setIsLoading(false); return; } // 성공 시 토큰 제거 및 로그인 페이지로 이동 localStorage.removeItem('token'); onClose(); router.push('/login'); } catch (error) { const errorMessage = error instanceof Error ? error.message : '네트워크 오류가 발생했습니다.'; console.error('회원 탈퇴 오류:', errorMessage); alert(errorMessage); setIsLoading(false); } }; if (!open) return null; return (
회원 탈퇴 시 유의사항을 확인해주세요.
- 탈퇴 후에도 재가입은 가능합니다.
- 수강 및 학습 이력이 모두 삭제되며, 복구가 불가능합니다.
- 수강 서비스 이용 권한이 즉시 종료됩니다.