11'use client' ;
22
3- import React , { createContext , useContext , useState , useEffect , ReactNode } from 'react' ;
3+ import React , { createContext , useContext , useState , useEffect , useCallback , ReactNode } from 'react' ;
44import { useSession , signIn , signOut } from 'next-auth/react' ;
55import { api } from '@/lib/api' ;
66
@@ -50,7 +50,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
5050 const [ error , setError ] = useState < string | null > ( null ) ;
5151
5252 // Function to fetch user data
53- const fetchUserData = async ( ) => {
53+ const fetchUserData = useCallback ( async ( ) => {
5454 if ( ! session ?. user ) {
5555 setUser ( null ) ;
5656 setProfile ( null ) ;
@@ -81,7 +81,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
8181 } finally {
8282 setIsLoading ( false ) ;
8383 }
84- } ;
84+ } , [ session ?. user ] ) ;
8585
8686 // Fetch user data when session changes
8787 useEffect ( ( ) => {
@@ -90,7 +90,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
9090 }
9191
9292 fetchUserData ( ) ;
93- } , [ session , status ] ) ;
93+ } , [ session , status , fetchUserData ] ) ;
9494
9595 // Login function
9696 const login = async ( ) => {
@@ -115,9 +115,9 @@ export function AuthProvider({ children }: { children: ReactNode }) {
115115 } ;
116116
117117 // Function to manually refresh user data
118- const refreshUserData = async ( ) => {
118+ const refreshUserData = useCallback ( async ( ) => {
119119 await fetchUserData ( ) ;
120- } ;
120+ } , [ fetchUserData ] ) ;
121121
122122 // Context value
123123 const value = {
0 commit comments