사용자 계정 관리 기능 구현 및 API 오류 수정

- 사용자 로그인 인증정보 관리 기능 구현 (이메일/휴대폰 추가/삭제)
- 사용자 추가 기능 구현 (실시간 ID 중복 검증 포함)
- 사용자 목록 조회 기능 구현
- API 엔드포인트 오류 수정 (userExistsUserid: GET → POST, URL 경로 수정)
- TypeScript 타입 오류 수정 (UseQueryOptions, UserCreateParams/Response)
- 이메일/휴대폰 형식 검증 및 중복 방지 로직 추가

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-09-25 09:10:38 +09:00
parent 3f404366cb
commit 5e1f24c8b8
18 changed files with 1148 additions and 207 deletions

View File

@@ -1,12 +1,12 @@
import { useEffect, useState } from 'react';
import { useLocation } from 'react-router';
import { useState } from 'react';
import { useLocation } from 'react-router-dom';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { AccountUserTab } from '@/entities/account/ui/account-user-tab';
import { UserLoginAuthInfoWrap } from '@/entities/account/ui/user-login-auth-info-wrap';
import { AccountUserTabKeys } from '@/entities/account/model/types';
import { HeaderType } from '@/entities/common/model/types';
import {
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode,
@@ -14,9 +14,9 @@ import {
} from '@/widgets/sub-layout/use-sub-layout';
export const UserLoginAuthInfoPage = () => {
const { navigate } = useNavigate();
const location = useLocation();
const [tid, setTid] = useState<string>(location?.state.tid);
const { mid, usrid, tid } = location.state || {};
const { navigate } = useNavigate();
const [activeTab, setActiveTab] = useState<AccountUserTabKeys>(AccountUserTabKeys.LoginAuthInfo);
useSetHeaderTitle('사용자 설정');
@@ -26,21 +26,36 @@ export const UserLoginAuthInfoPage = () => {
navigate(PATHS.account.user.manage);
});
useEffect(() => {
console.log('tid : ', tid);
}, []);
// const { mutateAsync: userFindAuthMethod } = useUserFindAuthMethodMutation();
// const callUserFindAuthMethod = (mid: string, usrid: string) => {
// let parms: UserFindAuthMethodParams = {
// mid: mid,
// usrid: usrid
// }
// userFindAuthMethod(params).then((rs: UserFindAuthMethodResponse) => {
// console.log("User Find Auth Method: ", rs)
// });
// }
// useEffect(() => {
// callUserFindAuthMethod(mid, usrid);
// }, [mid, usrid]);
return (
<>
<main>
<div className="tab-content">
<div className="tab-pane sub active">
<AccountUserTab
<div className="tab-pane pt-46 active">
<AccountUserTab
activeTab={ activeTab }
tid={ tid }
tid={tid || ''}
mid={mid || ''}
usrid={usrid || ''}
></AccountUserTab>
<UserLoginAuthInfoWrap
tid={ tid }
mid={mid || ''}
usrid={usrid || ''}
></UserLoginAuthInfoWrap>
</div>
</div>