The hook was maintaining redundant local state that caused re-renders
on every update, which triggered NextAuth to continuously refetch the
session, resulting in hundreds of POST requests to /api/auth/session.
Simplified the hook to directly return session values without
unnecessary state duplication.
* fix: unattended component reload due to session changes
When the session is updated, status goes back to loading then
authenticated or unauthenticated. session.accessTokenExpires may also be
updated.
This triggered various component refresh at unattented times, and brake
the user experience.
By splitting to only what's needed with memoization, it will prevent
unattented refresh.
* review
* review: change syntax