React
@probability-nz/react
Section titled “@probability-nz/react”React SDK for building Probability plugins. Plugins are web apps that can help with gameplay, act as an AI opponent, manage decks, enforce rules, etc.
A plugin is launched via a URL hash carrying a HashProps object. Once mounted, <ProbProvider> connects to the sync server; useProbDocument handles the game state and usePresenceState broadcasts presence.
A working example lives at examples/example-plugin — see its README for run/launch instructions.
Errors:
Section titled “Errors:”- Invalid URL hash:
parseHashProps()returnedundefined; consumer should render a fallback. - Automerge sync: doc never loads (~60s timeout). WebSocket errors are silent.
changeDoc(): doc schema validation faileduseProbDocument: document deleted by peer- Doc update: invalid mutation (eg
undefined, non-serializable values) - Peer presence: Warning: peer broadcasted an invalid presence state. Currently silent — TODO.
update(): local presence schema validation failed
SDK for building probability.nz plugins (React).
ProbProviderProps
Section titled “ProbProviderProps”Defined in: react/ProbProvider.tsx:8
Properties
Section titled “Properties”children
Section titled “children”children:
ReactNode
Defined in: react/ProbProvider.tsx:11
optionalsync:string[]
Defined in: react/ProbProvider.tsx:10
WebSocket sync server URLs.
ProbProvider()
Section titled “ProbProvider()”ProbProvider(
__namedParameters):Element
Defined in: react/ProbProvider.tsx:18
Wrap your plugin to enable document sync and SDK hooks.
Parameters
Section titled “Parameters”__namedParameters
Section titled “__namedParameters”Returns
Section titled “Returns”Element
useHashProps()
Section titled “useHashProps()”useHashProps():
HashProps|undefined
Defined in: react/useHashProps.ts:19
Parsed HashProps from location.hash, reactive to hashchange.
Returns undefined if the hash is missing or unparseable.
Returns
Section titled “Returns”HashProps | undefined
useProbDocument()
Section titled “useProbDocument()”useProbDocument<
T>(id): [Doc<T>,ChangeDocFn<T>]
Defined in: react/useProbDocument.ts:16
Schema-validated access to the shared game document.
Type Parameters
Section titled “Type Parameters”T extends object
Parameters
Section titled “Parameters”AnyDocumentId
Returns
Section titled “Returns”[Doc<T>, ChangeDocFn<T>]
Throws
Section titled “Throws”On schema validation failure.
Remarks
Section titled “Remarks”Suspends until loaded.
Presence
Section titled “Presence”usePresenceState()
Section titled “usePresenceState()”usePresenceState<
T>(docUrl,__namedParameters):object
Defined in: react/usePresenceState.ts:29
Share ephemeral state with peers (e.g. cursors, intended moves).
Type Parameters
Section titled “Type Parameters”T extends PresenceState
Parameters
Section titled “Parameters”docUrl
Section titled “docUrl”AnyDocumentId
__namedParameters
Section titled “__namedParameters”UsePresenceStateOptions<T>
Returns
Section titled “Returns”object
localState
Section titled “localState”localState:
Store<T>
peerStates
Section titled “peerStates”peerStates:
PeerStateView<T>
update()
Section titled “update()”update: (
updater) =>void
Parameters
Section titled “Parameters”updater
Section titled “updater”(prev) => T
Returns
Section titled “Returns”void
Default Value
Section titled “Default Value”tickRate — DEFAULT_TICK_RATE
Throws
Section titled “Throws”On schema validation failure.
Remarks
Section titled “Remarks”Suspends until loaded.
Advanced
Section titled “Advanced”createGame()
Section titled “createGame()”createGame(
repo,manifest,scenarioIndex):DocHandle<GameState>
Defined in: createGame.ts:10
Create a new game document from a manifest and scenario index.
Parameters
Section titled “Parameters”Repo
manifest
Section titled “manifest”GameManifest
scenarioIndex
Section titled “scenarioIndex”number
Returns
Section titled “Returns”DocHandle<GameState>
Throws
Section titled “Throws”If scenarioIndex is out of bounds.
buildGameState for building state without creating a document.