• Steven's avatar
    fix: prevent 401 errors on window focus when token expires · 81ef53b3
    Steven authored
    Fixes #5589
    
    When the page returns from background to foreground after the JWT
    token expires (~15 min), React Query's automatic refetch-on-focus
    triggers multiple API calls simultaneously. These all fail with 401
    Unauthorized, leaving the user with empty content.
    
    Solution:
    - Add useTokenRefreshOnFocus hook that listens to visibilitychange
    - Proactively refresh token BEFORE React Query refetches
    - Uses 2-minute buffer to catch expiring tokens early
    - Graceful error handling - logs error but doesn't block
    
    Changes:
    - Created web/src/hooks/useTokenRefreshOnFocus.ts
    - Updated isTokenExpired() to accept optional buffer parameter
    - Exported refreshAccessToken() for use by the hook
    - Integrated hook into AppInitializer (only when user authenticated)
    81ef53b3
Name
Last commit
Last update
..
components Loading commit data...
contexts Loading commit data...
helpers Loading commit data...
hooks Loading commit data...
layouts Loading commit data...
lib Loading commit data...
locales Loading commit data...
pages Loading commit data...
router Loading commit data...
themes Loading commit data...
types Loading commit data...
utils Loading commit data...
App.tsx Loading commit data...
auth-state.ts Loading commit data...
connect.ts Loading commit data...
i18n.ts Loading commit data...
index.css Loading commit data...
instance-config.ts Loading commit data...
main.tsx Loading commit data...