@idhub/identity-adapter-nextjs
Interfaces
IdentityProviderProps
Defined in: identity-adapter-nextjs/src/context.tsx:36
Properties
children?
optionalchildren?:ReactNode
Defined in: identity-adapter-nextjs/src/context.tsx:68
cookie?
optionalcookie?:AnonymousIdCookieConfig
Defined in: identity-adapter-nextjs/src/context.tsx:64
Must match the settings passed to the middleware.
initialAnonymousId?
optionalinitialAnonymousId?:string|AnonymousId
Defined in: identity-adapter-nextjs/src/context.tsx:61
The anonymous id read on the SERVER (getAnonymousIdFromCookies in a
Server Component) and passed down explicitly.
This is preferred over letting the client read document.cookie during
the first render, and the reason is correctness rather than convenience:
this component is a Client Component but Next.js still server-renders it.
On the server there is no document, so a cookie-derived initial state
would fall back to a freshly generated id, which would then disagree with
the id the browser actually holds — a hydration mismatch on every cold
load. Seeding from the server value makes the SSR pass and the hydration
pass render the same id.
Omit it and the provider still works; it just renders an empty anonymous id until the post-hydration effect reads the real one from the cookie.
onWarning?
optionalonWarning?: (code,message) =>void
Defined in: identity-adapter-nextjs/src/context.tsx:66
Parameters
code
IdentityWarningCode
message
string
Returns
void
providers
providers:
IdentityProvider[]
Defined in: identity-adapter-nextjs/src/context.tsx:43
Vendor provider instances (@idhub/identity-provider-*). Read once, when
the client is constructed — later changes to this array are ignored on
purpose, because re-creating the client mid-session would re-fire
onAnonymous on every vendor and split their sessions.
UseIdentityResult
Defined in: identity-adapter-nextjs/src/context.tsx:26
What useIdentity hands back to client components.
Properties
identify
identify: (
userId,traits?) =>void
Defined in: identity-adapter-nextjs/src/context.tsx:28
Parameters
userId
string
traits?
Traits
Returns
void
page
page: (
name?,properties?) =>void
Defined in: identity-adapter-nextjs/src/context.tsx:31
Parameters
name?
string
properties?
Traits
Returns
void
reset
reset: () =>
void
Defined in: identity-adapter-nextjs/src/context.tsx:29
Returns
void
state
state:
IdentityState
Defined in: identity-adapter-nextjs/src/context.tsx:27
track
track: (
event,properties?) =>void
Defined in: identity-adapter-nextjs/src/context.tsx:30
Parameters
event
string
properties?
Traits
Returns
void
Functions
IdentityProvider()
IdentityProvider(
__namedParameters):Element
Defined in: identity-adapter-nextjs/src/context.tsx:91
App Router compatible: this is a Client Component, so a Server Component
parent (typically app/layout.tsx) can render it and pass children
straight through — the children stay Server Components.
// app/layout.tsx — a Server Component
export default async function RootLayout({ children }) {
const anonymousId = getAnonymousIdFromCookies(await cookies())
return (
<html><body>
<IdentityProvider providers={[segment(), launchDarkly()]}
initialAnonymousId={anonymousId}>
{children}
</IdentityProvider>
</body></html>
)
}
Parameters
__namedParameters
Returns
Element
useIdentity()
useIdentity():
UseIdentityResult
Defined in: identity-adapter-nextjs/src/context.tsx:167
{ state, identify, reset, track, page } for client components. Throws
rather than returning a silent no-op object: a missing provider means every
vendor call is being dropped on the floor, which is exactly the class of bug
this package exists to remove.