- PermItem 타입에 menuNameEng 속성 추가
- 메뉴 권한 목록/아이템/페이지에서 현재 언어에 따라 메뉴 이름 선택
- 영어 번역 파일에 사용자 삭제 관련 번역 키 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
변경 사항:
- API 경로: POST /api/v1/nmsa/user/delete → DELETE /api/v1/nmsa/user/delete/{usrid}
- api-url-user.ts: deleteUser 함수에 usrid 파라미터 추가
- use-user-delete-mutation.ts:
- axios.post → axios.delete로 변경
- usrid를 path parameter로 전달
- mid는 request body의 data 필드로 전달
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
문제:
- showConfirm 함수 내부에서 useTranslation Hook 호출
- "Invalid hook call" 에러 발생
수정 사항:
1. showConfirm Hook 에러 수정
- ConfirmDialog 컴포넌트 분리
- 컴포넌트 내부에서 useTranslation 호출
- showConfirm은 일반 함수로 유지
2. 계정권한 탭에 삭제 버튼 추가
- account-auth-page.tsx에 삭제 기능 추가
- login-auth-info-page.tsx와 동일한 로직 적용
- 현재 로그인한 사용자가 아닐 경우에만 표시
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
문제:
- useSetOnRightClick의 의존성 배열에 fn이 포함되어 무한 루프 발생
- fn이 변경될 때마다 useEffect 재실행 → setState → 리렌더 → fn 재생성 → 무한 반복
해결:
- useSetOnBack 패턴과 동일하게 의존성에서 fn 제거
- useCallback도 제거하여 코드 단순화
- 페이지 마운트 시 한 번만 설정되므로 안정적
참고:
- isDeleteAllowed는 usrid가 변경되지 않는 한 고정값
- 대부분의 경우 페이지 생명주기 동안 변경되지 않음
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
문제:
- useSetOnRightClick 훅이 useEffect 안에서 호출되어 에러 발생
- "Invalid hook call" 에러 발생
수정 사항:
- useSetOnRightClick을 컴포넌트 최상위 레벨로 이동
- 조건부로 함수 또는 undefined를 전달하도록 변경
- useSetOnRightClick 훅의 의존성 배열에 fn 추가
- fn이 undefined일 때도 올바르게 처리하도록 개선
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 헤더 오른쪽 버튼 시스템 구현
- ContextType에 setOnRightClick 추가
- useSetOnRightClick 훅 추가
- HeaderNavigationProps에 onRightClick 추가
- HeaderType.LeftArrow에 오른쪽 삭제 버튼 렌더링
- 사용자 삭제 API 및 타입 추가
- UserDeleteParams, UserDeleteResponse 인터페이스 추가
- use-user-delete-mutation 훅 생성
- API_URL_USER.deleteUser() 엔드포인트 사용
- 사용자 설정 페이지에서 삭제 기능 구현
- 현재 로그인한 사용자가 아닐 경우에만 삭제 버튼 표시
- showConfirm 다이얼로그로 삭제 확인
- 삭제 성공 시 토스트 메시지 표시 및 목록 페이지로 이동
- 목록 페이지에서 refresh 상태로 자동 갱신
- showConfirm 위젯 추가
- Promise 기반의 확인 다이얼로그
- 취소/확인 버튼 지원
- 다국어 지원 (common.cancel, common.confirm)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 즐겨찾기 삭제 시 최소 1개 유지 검증을 삭제 전에 수행하도록 수정
- 기존: 삭제 후 체크 → UI에서 아이템 사라진 후 알림
- 개선: 삭제 전 early return → 삭제 자체를 중단
- 하드코딩된 한글 메시지를 다국어 키로 변경
- '바로가기는 1개이상 설정 필요 합니다.' → t('favorite.cannotDeleteLastItem')
- showAlert 대신 snackBar 사용으로 일관성 유지
- 메뉴 오픈 시 즐겨찾기 목록 스크롤을 맨 앞으로 초기화
- prevMenuOn 상태로 메뉴 오픈 감지
- 추가/삭제 시에만 마지막 아이템으로 스크롤
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 홈페이지: 생체인증이 이미 등록된 경우 등록 팝업이 표시되지 않도록 finally 블록 제거
- 알람 라우팅: /support/qna/list 경로 추가 및 /home 경로 정확도 개선
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>