diff --git a/app/league/all/page.tsx b/app/league/all/page.tsx index cb3336d7..50307210 100644 --- a/app/league/all/page.tsx +++ b/app/league/all/page.tsx @@ -30,10 +30,6 @@ const Leagues = (): JSX.Element => { }; useEffect(() => { - if (!user.id || user.id === '') { - return; - } - getLeagues(); }, [user]); diff --git a/context/AuthContextProvider.tsx b/context/AuthContextProvider.tsx index 92ea24df..2a37850a 100644 --- a/context/AuthContextProvider.tsx +++ b/context/AuthContextProvider.tsx @@ -2,8 +2,8 @@ // Licensed under the MIT License. 'use client'; -import React, { JSX, useCallback } from 'react'; -import { createContext, useContext, useEffect, useMemo, useState } from 'react'; +import React, { JSX, useEffect } from 'react'; +import { createContext, useContext, useMemo, useState } from 'react'; import { account } from '@/api/config'; import { useRouter } from 'next/navigation'; import { useDataStore } from '@/store/dataStore'; @@ -21,7 +21,7 @@ type AuthContextType = { setIsSignedIn: React.Dispatch>; loginAccount: (user: UserCredentials) => Promise; // eslint-disable-line no-unused-vars logoutAccount: () => Promise; - getUser: () => Promise; + getUser: () => Promise; }; export const AuthContext = createContext(null); @@ -43,14 +43,6 @@ export const AuthContextProvider = ({ ); const router = useRouter(); - useEffect(() => { - if (user.id === '' || user.email === '') { - getUser(); - return; - } - setIsSignedIn(true); - }, [user]); - /** * Authenticate and set session state * @param user - The user credentials. @@ -59,7 +51,6 @@ export const AuthContextProvider = ({ const loginAccount = async (user: UserCredentials): Promise => { try { await account.createEmailPasswordSession(user.email, user.password); - await getUser(); // Fetch user data and update state router.push('/league/all'); } catch (error) { console.error('Login error:', error); @@ -84,9 +75,9 @@ export const AuthContextProvider = ({ /** * Get user data from the session - * @returns {Promise} + * @returns {Promise} - The user data or an error. */ - const getUser = useCallback(async () => { + const getUser = async (): Promise => { if (!isSessionInLocalStorage()) { router.push('/login'); return; @@ -101,7 +92,7 @@ export const AuthContextProvider = ({ resetUser(); setIsSignedIn(false); } - }, [user]); + }; /** * Helper function to validate session data in local storage @@ -118,6 +109,13 @@ export const AuthContextProvider = ({ return true; }; + useEffect(() => { + if (!user.id || user.id === '') { + getUser(); + return; + } + }, [user]); + // Memoize context values to avoid unnecessary re-renders const contextValue = useMemo( () => ({