This repository was archived by the owner on Dec 18, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
This repository was archived by the owner on Dec 18, 2024. It is now read-only.
loaded profile cannot be obtained from session hook, and skipping the loading breaks the SessionContext logout updates #970
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Search terms you've used
profile, logout
Bug description
There is a problem with the way the profiles are used in the session init.
The problem is two-fold :
- profiles are loaded by default on session init, and set in a state that is part of the SessionContext. However these profiles are not exposed by the useSession hook, making them useless, and therefore wasting an HTTP request on login :
solid-ui-react/src/hooks/useSession/index.tsx
Lines 37 to 47 in 52cbbc4
export default function useSession(): SessionInfo { const { session, sessionRequestInProgress, fetch, login, logout } = useContext(SessionContext); return { session, sessionRequestInProgress, fetch, login, logout, }; - the
skipLoadingProfiles
flag can be used to remove that behaviour. However, it turns out the profile state is the only variable that triggers a session context update when logging out (the session object does not get updated by a logout, only its internalisLoggedIn
field)
solid-ui-react/src/context/sessionContext/index.tsx
Lines 190 to 200 in 52cbbc4
return ( <SessionContext.Provider value={{ session, login: contextLogin, logout: contextLogout, sessionRequestInProgress, setSessionRequestInProgress, fetch, profile, }}
So trying to disable the profile loading actually disables the logout updates one can expect from a SessionProvider, thereby mandating the explicit use of an onLogout
callback.
Expected result
- have the profile exposed through the
useSession
hook - be able to use
skipLoadingProfiles
while relying SessionProvider to trigger proper updates on logout
Additional information
Tested with 3.0.0
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working