React Hooks 규칙 위반 수정 - useSetOnRightClick

문제:
- 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>
This commit is contained in:
Jay Sheen
2025-11-14 18:24:17 +09:00
parent f7db3236e8
commit e184a58664
2 changed files with 8 additions and 7 deletions

View File

@@ -54,11 +54,8 @@ export const UserLoginAuthInfoPage = () => {
});
// 현재 로그인한 사용자가 아닌 경우에만 삭제 버튼 표시
useEffect(() => {
if (usrid && currentUsrid && usrid !== currentUsrid) {
useSetOnRightClick(() => handleDeleteUser);
}
}, [usrid, currentUsrid]);
const isDeleteAllowed = usrid && currentUsrid && usrid !== currentUsrid;
useSetOnRightClick(isDeleteAllowed ? handleDeleteUser : undefined);
return (
<>

View File

@@ -22,11 +22,15 @@ export const useSetOnBack = (fn: any) => {
export const useSetOnRightClick = (fn: any) => {
const { setOnRightClick } = useSubLayoutContext();
useEffect(() => {
setOnRightClick(() => fn);
if (fn) {
setOnRightClick(() => fn);
} else {
setOnRightClick(() => undefined);
}
return () => {
setOnRightClick(() => undefined);
};
}, [setOnRightClick]);
}, [fn, setOnRightClick]);
return { setOnRightClick };
};