diff --git a/src/hooks/auth/useClerkAuth.tsx b/src/hooks/auth/useClerkAuth.tsx index d295a2e..5fa35c2 100644 --- a/src/hooks/auth/useClerkAuth.tsx +++ b/src/hooks/auth/useClerkAuth.tsx @@ -63,14 +63,22 @@ const mockUserData = { * Clerk이 비활성화된 경우 Mock 데이터를 반환 */ export const useAuth = () => { - const auth = useClerkAuth(); + // React Hook 규칙을 준수하기 위해 항상 훅을 호출 + const clerkAuth = useClerkAuth(); + // Clerk이 비활성화된 경우 Mock 데이터 반환 if (isClerkDisabled()) { logger.debug("useAuth: Clerk 비활성화됨, Mock 데이터 반환"); return mockAuthData; } - return auth; + // Clerk 훅이 정상적으로 로드되지 않은 경우 (ChunkLoadError 등) + if (!clerkAuth || !clerkAuth.isLoaded) { + logger.debug("useAuth: Clerk 로딩 중 또는 오류, Mock 데이터 반환"); + return mockAuthData; + } + + return clerkAuth; }; /** @@ -78,14 +86,22 @@ export const useAuth = () => { * Clerk이 비활성화된 경우 Mock 데이터를 반환 */ export const useUser = () => { - const user = useClerkUser(); + // React Hook 규칙을 준수하기 위해 항상 훅을 호출 + const clerkUser = useClerkUser(); + // Clerk이 비활성화된 경우 Mock 데이터 반환 if (isClerkDisabled()) { logger.debug("useUser: Clerk 비활성화됨, Mock 데이터 반환"); return mockUserData; } - return user; + // Clerk 훅이 정상적으로 로드되지 않은 경우 (ChunkLoadError 등) + if (!clerkUser || !clerkUser.isLoaded) { + logger.debug("useUser: Clerk 로딩 중 또는 오류, Mock 데이터 반환"); + return mockUserData; + } + + return clerkUser; }; /**