Overview
useUser is the primary hook for interacting with the currently authenticated user’s profile. It provides the user’s full data (as an AuthUser), loading and error states, an updateUser action, and derived suspension state (isSuspended / activeSuspension).
Updates are applied optimistically — the UI reflects changes immediately, and reverts automatically if the server request fails.
Usage Example
Uploading an Avatar
Return Values
The authenticated user’s full profile. Returns
null while loading or when no user is authenticated. See User data model.true while the user’s profile is being fetched for the first time.true while an updateUser call is in progress.Error message if an
updateUser call fails. null when there is no error.true while the authenticated user has an active suspension. Derived from the user’s suspensions using the same effective definition as the server.The user’s effective (furthest-reaching) active suspension, or
null when they aren’t suspended. endDate: null means the suspension is indefinite. Bind a “suspended until X” banner or a disabled composer to this. See Suspensions.Updates the authenticated user’s profile. Applies optimistic updates immediately and reverts on failure.
Clears the current error state.
Optimistic Updates
updateUser applies changes to local state before the server responds. This makes the UI feel instant. Fields that cannot be optimistically applied (file uploads, location) wait for the server response.
If the server returns an error, the hook automatically reverts the user state to its pre-update value.
File uploads (avatar as a
File/Blob, and banner) are not applied optimistically because the final URL is unknown until the upload completes.
