diff --git a/src/hooks/useUser.ts b/src/hooks/useUser.ts index 2a14ad1d5..d948f2de8 100644 --- a/src/hooks/useUser.ts +++ b/src/hooks/useUser.ts @@ -2,6 +2,7 @@ import { UserType } from '@server/constants/user'; import type { PermissionCheckOptions } from '@server/lib/permissions'; import { hasPermission, Permission } from '@server/lib/permissions'; import type { NotificationAgentKey } from '@server/lib/settings'; +import { useRouter } from 'next/router'; import type { MutatorCallback } from 'swr'; import useSWR from 'swr'; @@ -56,13 +57,21 @@ export const useUser = ({ id, initialData, }: { id?: number; initialData?: User } = {}): UserHookResponse => { + const router = useRouter(); + const isAuthPage = /^\/(login|setup|resetpassword(?:\/|$))/.test( + router.pathname + ); + const { data, error, mutate: revalidate, } = useSWR(id ? `/api/v1/user/${id}` : `/api/v1/auth/me`, { fallbackData: initialData, - refreshInterval: 30000, + refreshInterval: !isAuthPage ? 30000 : 0, + revalidateOnFocus: !isAuthPage, + revalidateOnMount: !isAuthPage, + revalidateOnReconnect: !isAuthPage, errorRetryInterval: 30000, shouldRetryOnError: false, });