메뉴 권한 관리 UI 개선

- 초기 로드 시 애니메이션 효과 제거 (즉시 표시)
- 권한 항목이 있을 때만 구분선 표시하도록 조건부 렌더링 추가
- 메뉴 항목에 '안면인증' 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-09-29 18:08:35 +09:00
parent b63c3f50a2
commit 3faa3ecc84
2 changed files with 10 additions and 2 deletions

View File

@@ -98,6 +98,7 @@ export const UserAccountAuthWrap = ({
{menuId: '58', parent: '50', menuName: '알림톡결제통보'},
{menuId: '59', parent: '50', menuName: '계좌점유인증'},
{menuId: '60', parent: '50', menuName: '계좌성명조회'},
{menuId: '65', parent: '50', menuName: '안면인증'},
]
},
{menuId: '61', parent: '61', menuName: '고객지원', subMenu:

View File

@@ -32,6 +32,7 @@ export const UserMenuAuthPage = () => {
const [initialPermissions, setInitialPermissions] = useState<Record<number, number>>({});
const [defaultPermissions, setDefaultPermissions] = useState<Record<number, number>>({});
const [hasChanges, setHasChanges] = useState(false);
const [isInitialLoad, setIsInitialLoad] = useState(true);
const savePermissionsMutation = useUserMenuPermissionsSaveMutation({
onSuccess: () => {
snackBar('권한이 성공적으로 저장되었습니다.');
@@ -101,6 +102,9 @@ export const UserMenuAuthPage = () => {
setPermissions(grants);
setInitialPermissions(grants); // 초기값은 현재 grant 값으로 설정
setDefaultPermissions(defaultGrants); // defaultGrant는 별도로 관리
// 초기 로드 완료 후 애니메이션 활성화
setTimeout(() => setIsInitialLoad(false), 100);
} else {
// menuGrants가 없거나 빈 배열이면 API에서 권한 조회
// loadPermissions();
@@ -223,10 +227,13 @@ export const UserMenuAuthPage = () => {
maxHeight: hasAccess ? '300px' : '0',
opacity: hasAccess ? 1 : 0,
overflow: 'hidden',
transition: 'max-height 0.3s ease-in-out, opacity 0.3s ease-in-out'
transition: isInitialLoad ? 'none' : 'max-height 0.3s ease-in-out, opacity 0.3s ease-in-out'
}}
>
<div className="set-divider"></div>
{(hasDefaultPermission(menu.menuId, PERMISSION.SAVE) || hasDefaultPermission(menu.menuId, PERMISSION.EXECUTE) || hasDefaultPermission(menu.menuId, PERMISSION.DOWNLOAD)) && (
<div className="set-divider"></div>
)}
{hasDefaultPermission(menu.menuId, PERMISSION.SAVE) && (
<div className="settings-row">
<span className="settings-row-title bd-sub dot"></span>