Skip to content

createAuthHooks

createAuthHooks is a factory function that creates React hooks for managing Internet Identity authentication. The hooks are bound to a specific ClientManager instance.

import { createAuthHooks } from "@ic-reactor/react"
import { createAuthHooks } from "@ic-reactor/react"
import { clientManager } from "./reactor"
const { useAuth, useUserPrincipal, useAgentState } =
createAuthHooks(clientManager)
ParameterTypeDescription
clientManagerClientManagerThe ClientManager instance to bind to

createAuthHooks returns an object containing:

PropertyTypeDescription
useAuthHookMain hook for auth actions and state
useUserPrincipalHookCurrent user’s Principal
useAgentStateHookAgent initialization state
src/reactor/index.ts
import { ClientManager } from "@ic-reactor/core"
import { QueryClient } from "@tanstack/query-core"
export const queryClient = new QueryClient()
export const clientManager = new ClientManager({
queryClient,
withProcessEnv: true,
})
src/reactor/hooks.ts
import { createAuthHooks } from "@ic-reactor/react"
import { clientManager } from "./index"
export const { useAuth, useUserPrincipal, useAgentState } =
createAuthHooks(clientManager)
src/App.tsx
import { useAgentState } from "./reactor/hooks"
import { QueryClientProvider } from "@tanstack/react-query"
import { queryClient } from "./reactor"
function App() {
const { isInitializing, error } = useAgentState()
if (isInitializing) return <LoadingScreen />
if (error) return <ErrorScreen error={error} />
return (
<QueryClientProvider client={queryClient}>
<Router />
</QueryClientProvider>
)
}