Development Guide
React Stream Client
Use Motia streams in React with MotiaStreamProvider, useMotiaStream, useStreamGroup, and useStreamItem.
Motia v1.0 migration: Upgrading from 0.17? Follow the 0.17 to 1.0 migration guide and handler migration guide.
Use @motiadev/stream-client-react to subscribe to Motia streams from React.
Package name
The React stream client is published as @motiadev/stream-client-react. It is not imported from motia.
Install
MotiaStreamProvider
Wrap your app (or a subtree) so hooks can access the stream connection.
Props
address: string- Stream server WebSocket URLprotocols?: string | string[]- Optional WebSocket protocols (for auth tokens, etc.)
useMotiaStream
Access the underlying stream client instance from context.
useMotiaStream, useStreamGroup, and useStreamItem must be used inside MotiaStreamProvider.
useStreamGroup
Subscribe to all items in a group.
Args
streamName: string- Stream name from your.stream.tsconfiggroupId: string- Group to subscribe tosortKey?: keyof TData- Optional sort fieldsetData?: (data: TData[]) => void- Optional callback on updates
useStreamItem
Subscribe to one specific stream item.
Args
streamName: stringgroupId: stringid?: string
Return values
useStreamGroup<T>()returns{ data: T[], event }useStreamItem<T>()returns{ data: T | null | undefined, event }eventis the subscription object used byuseStreamEventHandler