The PoolDetail component in web/app/pools/[id]/page.tsx sets up a 10-second auto-refresh interval (lines 120-130) that calls fetchPool() and fetchUserBet(). Neither callback has a mounted-guard check:
fetchPool (lines 55-64) unconditionally calls setPool() and setError() after await
fetchUserBet (lines 66-77) calls setUserBet() after await
If the component unmounts while a refresh is in-flight, React logs a Can't perform a React state update on an unmounted component warning. Other hooks (useUserActivity, usePoolActivity) correctly implement mountedRef checks, but PoolDetail does not.
The
PoolDetailcomponent inweb/app/pools/[id]/page.tsxsets up a 10-second auto-refresh interval (lines 120-130) that callsfetchPool()andfetchUserBet(). Neither callback has a mounted-guard check:fetchPool(lines 55-64) unconditionally callssetPool()andsetError()afterawaitfetchUserBet(lines 66-77) callssetUserBet()afterawaitIf the component unmounts while a refresh is in-flight, React logs a
Can't perform a React state update on an unmounted componentwarning. Other hooks (useUserActivity,usePoolActivity) correctly implementmountedRefchecks, butPoolDetaildoes not.