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(() => { const isDeleteAllowed = usrid && currentUsrid && usrid !== currentUsrid;
if (usrid && currentUsrid && usrid !== currentUsrid) { useSetOnRightClick(isDeleteAllowed ? handleDeleteUser : undefined);
useSetOnRightClick(() => handleDeleteUser);
}
}, [usrid, currentUsrid]);
return ( return (
<> <>

View File

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