Skip to main content

Interface: UseAmnesiaResult

Defined in: use.ts:23

Hook returning the current Amnesia state plus stable action callbacks.

The returned object is reconstructed on every store mutation but the action functions (push, amend, undo, redo, clear) remain referentially stable across renders, so they can be used in useEffect deps without causing re-runs.

The result also carries scopeId so consumers can render which scope a snapshot describes (useful for "Undo (canvas)" toolbar labels).

Extends

Properties

amend

amend: (patch) => Promise<number | null>

Defined in: use.ts:29

Amend the most recent entry. See Amnesia.amend.

Parameters

ParameterType
patchAmendPatch

Returns

Promise<number | null>


canRedo

readonly canRedo: boolean

Defined in: types.ts:165

Convenience flag — equivalent to future.length > 0.

Inherited from

AmnesiaState.canRedo


canUndo

readonly canUndo: boolean

Defined in: types.ts:162

Convenience flag — equivalent to past.length > 0.

Inherited from

AmnesiaState.canUndo


clear

clear: () => void

Defined in: use.ts:46

Drop both stacks of this scope. See Amnesia.clear.

Returns

void


epoch

readonly epoch: number

Defined in: types.ts:185

Monotonic counter that bumps only on clear() and provider unmount (dispose()). Unlike version, incidental pushes / undos / redos do not advance it.

Used internally by async operations as an abort token: an in-flight await whose epoch snapshot disagrees with the current value resolves to a stale-drop and is reported via onError({ phase: "stale" }).

Application code can also subscribe to epoch to detect "the document changed underneath me" without re-rendering on every keystroke.

Inherited from

AmnesiaState.epoch


future

readonly future: readonly HistoryEntry[]

Defined in: types.ts:159

Entries available to redo(), with the next-redo entry at the end.

Inherited from

AmnesiaState.future


past

readonly past: readonly HistoryEntry[]

Defined in: types.ts:154

Entries available to undo(), oldest at index 0 and newest at the end. Same ordering as a typical "history list" UI.

Inherited from

AmnesiaState.past


pending

readonly pending: boolean

Defined in: types.ts:195

true while at least one push / undo / redo has an unresolved Promise in flight. Synchronous handlers complete before any subscriber observes pending: true.

Concurrent calls while pending === true resolve to null immediately and are reported via onError({ phase: "busy" }).

Inherited from

AmnesiaState.pending


push

push: (command, options?) => Promise<number | null>

Defined in: use.ts:27

Push a new command. See Amnesia.push.

Parameters

ParameterType
commandCommand
options?PushOptions

Returns

Promise<number | null>


redo

redo: () => Promise<number | null>

Defined in: use.ts:33

Redo the most recent future entry. See Amnesia.redo.

Returns

Promise<number | null>


scopeId

scopeId: string

Defined in: use.ts:25

The scope id this snapshot is bound to.


transaction

transaction: {(work): Promise<number | null>; (label, work): Promise<number | null>; }

Defined in: use.ts:38

Run a series of pushes as a single composite entry. See Amnesia.transaction.

Call Signature

(work): Promise<number | null>

Parameters
ParameterType
work(tx, signal) => void | Promise<void>
Returns

Promise<number | null>

Call Signature

(label, work): Promise<number | null>

Parameters
ParameterType
labelstring
work(tx, signal) => void | Promise<void>
Returns

Promise<number | null>


undo

undo: () => Promise<number | null>

Defined in: use.ts:31

Undo the most recent past entry. See Amnesia.undo.

Returns

Promise<number | null>


version

readonly version: number

Defined in: types.ts:171

Monotonic version counter incremented on every mutation. Useful for cache keys or useEffect dependency arrays.

Inherited from

AmnesiaState.version