User Resolvers Overview
A user resolver is a React hook that returns the current user’s { name, email }. MUS uses it to pre-fill the name and email fields in forms and to include user identity in feedback messages.
Priority order
Section titled “Priority order”config.user: explicit override onMusProvider, always winsconfig.userResolver: your auth system (Stytch, Clerk, Auth0, NextAuth, or custom)- Stytch auto-detection: if
@stytch/reactis installed and a session is active, MUS reads it automatically (no configuration needed) - Anonymous fallback
{ name: 'Anonymous', email: '' }
Built-in resolvers
Section titled “Built-in resolvers”Import the resolver for your auth system and pass it to MusProvider:
Stytch
Section titled “Stytch”import { stytchResolver } from '@datachef/mus/resolvers/stytch'
<MusProvider config={{ projectName: 'My App', slack: { ... }, userResolver: stytchResolver(),}}>Requires @stytch/react in your project.
import { clerkResolver } from '@datachef/mus/resolvers/clerk'
<MusProvider config={{ ... userResolver: clerkResolver(),}}>Requires @clerk/clerk-react in your project.
import { auth0Resolver } from '@datachef/mus/resolvers/auth0'
<MusProvider config={{ ... userResolver: auth0Resolver(),}}>Requires @auth0/auth0-react in your project.
NextAuth
Section titled “NextAuth”import { nextAuthResolver } from '@datachef/mus/resolvers/next-auth'
<MusProvider config={{ ... userResolver: nextAuthResolver(),}}>Requires next-auth in your project.
No auth system
Section titled “No auth system”If your app doesn’t use an authentication library, you can still pre-fill user info:
Static user (config override)
Section titled “Static user (config override)”<MusProvider config={{ ... user: { name: 'Jane Doe', email: 'jane@example.com', },}}>Read from localStorage or a cookie
Section titled “Read from localStorage or a cookie”See Custom Resolvers for a localStorage-based resolver example.
Writing a custom resolver
Section titled “Writing a custom resolver”See Custom Resolvers.