solid-ui-react
solid-ui-react copied to clipboard
loaded profile cannot be obtained from session hook, and skipping the loading breaks the SessionContext logout updates
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 : https://github.com/inrupt/solid-ui-react/blob/52cbbc4169abf494a0d00a2c8d6b16a8e6668386/src/hooks/useSession/index.tsx#L37-L47
- 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) https://github.com/inrupt/solid-ui-react/blob/52cbbc4169abf494a0d00a2c8d6b16a8e6668386/src/context/sessionContext/index.tsx#L190-L200
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