From 0e66578eab4a636a58b0a4466acd4655d0a30de3 Mon Sep 17 00:00:00 2001 From: minjaehan Date: Wed, 5 Nov 2025 22:57:01 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EC=86=8C=EC=85=9C=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20=ED=9A=8C=EC=9B=90=ED=83=88=ED=87=B4=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20?= =?UTF-8?q?=EC=83=81=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/constants/authConstants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/shared/constants/authConstants.ts b/src/shared/constants/authConstants.ts index 1d00a21..9c80860 100644 --- a/src/shared/constants/authConstants.ts +++ b/src/shared/constants/authConstants.ts @@ -1,2 +1,3 @@ export const LOGIN_METHOD_STORAGE_KEY = 'loginMethod'; export const LOGIN_PROVIDER_HINT_KEY = 'loginProviderHint'; +export const SOCIAL_LOGIN_WITHDRAW_PASSWORD = 'SOCIAL_LOGIN_USER'; From 9e7d91efc6985a83557a2f1563293d9a0263f1c9 Mon Sep 17 00:00:00 2001 From: minjaehan Date: Wed, 5 Nov 2025 22:57:59 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90=ED=83=88?= =?UTF-8?q?=ED=87=B4=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=86=8C=EC=85=9C?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=B6=84=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/settings/DeleteAccountPage.tsx | 42 +++++++++++++++--------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/pages/settings/DeleteAccountPage.tsx b/src/pages/settings/DeleteAccountPage.tsx index 97e6b2d..64b9aa8 100644 --- a/src/pages/settings/DeleteAccountPage.tsx +++ b/src/pages/settings/DeleteAccountPage.tsx @@ -3,13 +3,16 @@ import React, { useState } from 'react'; import DeleteAccountModal from '@/pages/settings/components/DeleteAccountModal/DeleteAccountModal'; import { authApi } from '@/shared/apis/auth'; +import { SOCIAL_LOGIN_WITHDRAW_PASSWORD } from '@/shared/constants/authConstants'; +import { useAuth } from '@/shared/context/AuthContext'; import { tokenUtils } from '@/shared/utils/auth'; const DeleteAccountPage = () => { const [password, setPassword] = useState(''); const [isModalOpen, setIsModalOpen] = useState(false); + const { loginMethod } = useAuth(); - const isFormValid = password.trim() !== ''; + const isSocialLogin = loginMethod === 'kakao' || loginMethod === 'google'; const queryClient = useQueryClient(); const { mutate, isPending } = useMutation({ @@ -38,6 +41,8 @@ const DeleteAccountPage = () => { }, }); + const isFormValid = isSocialLogin || password.trim() !== ''; + const handleOpenModal: React.FormEventHandler = (e) => { e.preventDefault(); if (isFormValid) setIsModalOpen(true); @@ -48,7 +53,7 @@ const DeleteAccountPage = () => { }; const handleConfirmDelete = () => { - mutate(password); + mutate(isSocialLogin ? SOCIAL_LOGIN_WITHDRAW_PASSWORD : password); }; const handleCancelDelete = () => { @@ -65,20 +70,25 @@ const DeleteAccountPage = () => { onSubmit={handleOpenModal} className="mx-auto mt-8 w-full max-w-[432px] space-y-4 sm:mt-8 sm:space-y-6" > -
- - setPassword(e.target.value)} - autoComplete="current-password" - /> -
+ {!isSocialLogin && ( +
+ + setPassword(e.target.value)} + autoComplete="current-password" + /> +
+ )}