Skip to content
Layers
Esc
↑↓navigate↵open⌘Jpreview
On this page

react

Interfaces

UseStackOptions

Defined in: packages/react/src/index.tsx:88

Options for useStack / useQueuedStack. @default stack "default".

Type Parameters

Type Parameter Default type
T LayerState[]

Properties

Property Type Description Defined in
stack? string Default "default" packages/react/src/index.tsx:90
select? (states) => T - packages/react/src/index.tsx:91
compare? (a, b) => boolean Default Object.is (key-filtered hooks default to shallow array equality) packages/react/src/index.tsx:93

UseLayerStateOptions

Defined in: packages/react/src/index.tsx:97

Options for useLayerState / useLayerQueuedState.

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Properties

Property Type Description Defined in
key Key - packages/react/src/index.tsx:103
stack? string Default "default" packages/react/src/index.tsx:105
select? (states) => U - packages/react/src/index.tsx:106
compare? (a, b) => boolean - packages/react/src/index.tsx:107

StackHandles

Defined in: packages/react/src/index.tsx:354

Properties

Property Type Defined in
states LayerState<unknown, void, Error, unknown>[] packages/react/src/index.tsx:355
getCall (state) => LayerCallContext<unknown, unknown> packages/react/src/index.tsx:356

MutationRun

Defined in: packages/react/src/index.tsx:441

Type Parameters

Type Parameter
R

Properties

Property Type Description Defined in
orEnd (response) => Promise<void> On success, end the layer with response; on failure, leave it open and rethrow. packages/react/src/index.tsx:443

MutationFlow

Defined in: packages/react/src/index.tsx:446

Type Parameters

Type Parameter
R

Properties

Property Type Description Defined in
pending boolean True while a run(...) async action is in flight. Mirrors the layer’s actionStatus: "running". packages/react/src/index.tsx:448
run (fn) => MutationRun<R> - packages/react/src/index.tsx:449

ScopedOpen()

Defined in: packages/react/src/index.tsx:501

Open a layer on a pre-bound stack, with DataTag response and error inference.

Call Signature

ScopedOpen<P, R, E, D, RootProps>(options): Promise<R>;

Defined in: packages/react/src/index.tsx:502

Open a layer on a pre-bound stack, with DataTag response and error inference.

Type Parameters
Type Parameter Default type
P -
R -
E Error
D unknown
RootProps unknown
Parameters
Parameter Type
options OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps> & object, "stack" | "validate">
Returns

Promise<R>

Call Signature

ScopedOpen<P, R, E, D, RootProps>(options): Promise<R>;

Defined in: packages/react/src/index.tsx:510

Open a layer on a pre-bound stack, with DataTag response and error inference.

Type Parameters
Type Parameter Default type
P -
R void
E Error
D unknown
RootProps unknown
Parameters
Parameter Type
options OmitKeyof<OpenLayerOptions<P, R, E, D, RootProps>, "stack">
Returns

Promise<R>


LayerGroup

Defined in: packages/react/src/index.tsx:515

Properties

Property Type Description Defined in
open ScopedOpen - packages/react/src/index.tsx:516
dismissAll (response?) => void - packages/react/src/index.tsx:517
states LayerState<unknown, void, Error, unknown>[] - packages/react/src/index.tsx:518
Outlet ComponentType<{ rootProps?: unknown; }> Renders the child stack inline — place inside the parent layer’s DOM. packages/react/src/index.tsx:520
stackId string - packages/react/src/index.tsx:521

AppStack

Defined in: packages/react/src/index.tsx:577

Properties

Property Type Defined in
open ScopedOpen packages/react/src/index.tsx:578
dismissAll (response?) => void packages/react/src/index.tsx:579
states LayerState<unknown, void, Error, unknown>[] packages/react/src/index.tsx:580

AppLayerProps

Defined in: packages/react/src/index.tsx:583

Type Parameters

Type Parameter Default type
P -
R void

Properties

Property Type Description Defined in
options OmitKeyof<LayerOptions<P, R>, "stack"> Layer definition with the stack supplied by the factory. packages/react/src/index.tsx:585
open boolean Controlled visibility. true opens the layer; false dismisses it. packages/react/src/index.tsx:587
payload P - packages/react/src/index.tsx:588
onResolved? (response) => void Called when the layer resolves. packages/react/src/index.tsx:590

StackHook

Defined in: packages/react/src/index.tsx:593

Type Parameters

Type Parameter
HostProps

Properties

Property Type Defined in
StackProvider (props) => ReactElement packages/react/src/index.tsx:594
useAppStack () => AppStack packages/react/src/index.tsx:598
AppHost (props) => ReactElement packages/react/src/index.tsx:599
AppLayer <P, R>(props) => null packages/react/src/index.tsx:600

Type Aliases

WiredLayerHandle

type WiredLayerHandle<P, R, E, D, RP> = LayerHandle<P, R, E, D, RP> & object;

Defined in: packages/react/src/index.tsx:111

LayerHandle plus reactive same-key state / queued / top.

Type Declaration

Name Type Defined in
state LayerState<P, R, E, D>[] packages/react/src/index.tsx:118
queued LayerState<P, R, E, D>[] packages/react/src/index.tsx:119
top | LayerState<P, R, E, D> | null packages/react/src/index.tsx:120

Type Parameters

Type Parameter Default type
P -
R -
E DefaultLayerError
D unknown
RP unknown

WiredValidatedLayerHandle

type WiredValidatedLayerHandle<V, R, E, D, RP> = ValidatedLayerHandle<V, R, E, D, RP> & object;

Defined in: packages/react/src/index.tsx:123

Type Declaration

Type Parameters

Type Parameter Default type
V extends Validator<unknown> -
R -
E DefaultLayerError
D unknown
RP unknown

Functions

StackProvider()

function StackProvider(__namedParameters): Element;

Defined in: packages/react/src/index.tsx:46

Provide a LayerClient to the subtree, creating one when omitted.

Parameters

Parameter Type
__namedParameters { client?: LayerClient; children: ReactNode; }
__namedParameters.client? LayerClient
__namedParameters.children ReactNode

Returns

Element


useLayerClient()

function useLayerClient(): LayerClient;

Defined in: packages/react/src/index.tsx:69

Return the nearest context-provided LayerClient.

Returns

LayerClient


useStack()

function useStack<T>(opts?, client?): T;

Defined in: packages/react/src/index.tsx:184

Subscribe to a selected slice of a stack’s mounted snapshot.

Type Parameters

Type Parameter Default type
T LayerState<unknown, void, Error, unknown>[]

Parameters

Parameter Type
opts UseStackOptions<T>
client? LayerClient

Returns

T


useQueuedStack()

function useQueuedStack<T>(opts?, client?): T;

Defined in: packages/react/src/index.tsx:198

Subscribe to a selected slice of a stack’s queued snapshot.

Type Parameters

Type Parameter Default type
T LayerState<unknown, void, Error, unknown>[]

Parameters

Parameter Type
opts UseStackOptions<T>
client? LayerClient

Returns

T


useLayerState()

function useLayerState<Key, P, D, U>(opts, client?): U;

Defined in: packages/react/src/index.tsx:216

Observe all mounted layers matching a key.

A DataTag key infers its response and error types.

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Parameters

Parameter Type
opts UseLayerStateOptions<Key, P, D, U>
client? LayerClient

Returns

U


useLayerQueuedState()

function useLayerQueuedState<Key, P, D, U>(opts, client?): U;

Defined in: packages/react/src/index.tsx:239

Observe all queued layers matching a key.

Type Parameters

Type Parameter Default type
Key extends LayerKey -
P unknown
D unknown
U LayerState<P, ResponseOf<Key>, ErrorOf<Key>, D>[]

Parameters

Parameter Type
opts UseLayerStateOptions<Key, P, D, U>
client? LayerClient

Returns

U


useLayer()

Call Signature

function useLayer<V, R, E, D, RP>(options, client?): WiredValidatedLayerHandle<V, R, E, D, RP>;

Defined in: packages/react/src/index.tsx:312

Wired handle: createLayer + reactive state/queued/top.

Type Parameters
Type Parameter Default type
V extends Validator<unknown> -
R -
E Error
D unknown
RP unknown
Parameters
Parameter Type
options LayerOptions<InferValidatorOutput<V>, R, E, D, RP> & object
client? LayerClient
Returns

WiredValidatedLayerHandle<V, R, E, D, RP>

Example
const c = useLayer(confirm);
await c.open({ title: "Remove?" });

Call Signature

function useLayer<P, R, E, D, RP>(options, client?): WiredLayerHandle<P, R, E, D, RP>;

Defined in: packages/react/src/index.tsx:326

Wired handle: createLayer + reactive state/queued/top.

Type Parameters
Type Parameter Default type
P -
R -
E Error
D unknown
RP unknown
Parameters
Parameter Type
options LayerOptions<P, R, E, D, RP> & object
client? LayerClient
Returns

WiredLayerHandle<P, R, E, D, RP>

Example
const c = useLayer(confirm);
await c.open({ title: "Remove?" });

useStackHandles()

function useStackHandles(stack?, rootProps?): StackHandles;

Defined in: packages/react/src/index.tsx:360

Return the states and call contexts needed to render a stack headlessly.

Parameters

Parameter Type Default value
stack string "default"
rootProps? unknown undefined

Returns

StackHandles


StackOutlet()

function StackOutlet(__namedParameters): Element;

Defined in: packages/react/src/index.tsx:385

Render every active layer in a stack with its registered component.

Parameters

Parameter Type
__namedParameters { stack?: string; rootProps?: unknown; }
__namedParameters.stack? string
__namedParameters.rootProps? unknown

Returns

Element


StackSubscribe()

function StackSubscribe<T>(__namedParameters): Element;

Defined in: packages/react/src/index.tsx:428

Render a selected stack value through a render prop.

Type Parameters

Type Parameter
T

Parameters

Parameter Type
__namedParameters { stack?: string; selector: (states) => T; children: (value) => ReactNode; }
__namedParameters.stack? string
__namedParameters.selector (states) => T
__namedParameters.children (value) => ReactNode

Returns

Element


useMutationFlow()

function useMutationFlow<P, R, RootProps>(call): MutationFlow<R>;

Defined in: packages/react/src/index.tsx:475

Coordinate a layer’s pending state with an async mutation and end it on success.

Type Parameters

Type Parameter Default type
P -
R -
RootProps unknown

Parameters

Parameter Type
call LayerCallContext<P, R, RootProps>

Returns

MutationFlow<R>

Example

import {
  type LayerComponentProps,
  useMutationFlow,
} from "@stainless-code/react-layers";

function Confirm({ call }: LayerComponentProps<void, boolean>) {
  const flow = useMutationFlow(call);
  return (
    <button
      disabled={flow.pending}
      onClick={() => void flow.run(() => Promise.resolve()).orEnd(true)}
    >
      Confirm
    </button>
  );
}

useLayerGroup()

function useLayerGroup<P, R, RootProps>(call, options?): LayerGroup;

Defined in: packages/react/src/index.tsx:530

Create a child stack scoped to the calling layer’s lifetime.

The child stack is disposed and cleared via cancelAll when its parent layer unmounts (LayerCancelledError).

Type Parameters

Type Parameter Default type
P -
R -
RootProps unknown

Parameters

Parameter Type
call LayerCallContext<P, R, RootProps>
options? LayerGroupOptions

Returns

LayerGroup


createStackHook()

function createStackHook<HostProps>(config?): StackHook<HostProps>;

Defined in: packages/react/src/index.tsx:604

Create provider, host, controlled-layer, and access hooks bound to one stack.

Type Parameters

Type Parameter Default type
HostProps extends object object

Parameters

Parameter Type
config { client?: LayerClient; stack?: string; Host?: ComponentType<object & HostProps>; }
config.client? LayerClient
config.stack? string
config.Host? ComponentType<object & HostProps>

Returns

StackHook<HostProps>

References

assertLayerKey

Re-exports assertLayerKey


hashKey

Re-exports hashKey


keySignature

Re-exports keySignature


shallowArrayEqual

Re-exports shallowArrayEqual


Subscribable

Re-exports Subscribable


notifyManager

Re-exports notifyManager


ControlledPromise

Re-exports ControlledPromise


Resolve

Re-exports Resolve


Reject

Re-exports Reject


Layer

Re-exports Layer


LayerStack

Re-exports LayerStack


LayerClient

Re-exports LayerClient


layerOptions

Re-exports layerOptions


createLayer

Re-exports createLayer


LayerHandle

Re-exports LayerHandle


ValidatedLayerHandle

Re-exports ValidatedLayerHandle


layerKey

Re-exports layerKey


DataTag

Re-exports DataTag


InferDataTagResponse

Re-exports InferDataTagResponse


InferDataTagError

Re-exports InferDataTagError


ResponseOf

Re-exports ResponseOf


ErrorOf

Re-exports ErrorOf


createCallContext

Re-exports createCallContext


childStackId

Re-exports childStackId


createLayerGroup

Re-exports createLayerGroup


LayerGroupHandle

Re-exports LayerGroupHandle


LayerGroupOptions

Re-exports LayerGroupOptions


StandardSchemaV1

Re-exports StandardSchemaV1


Validator

Re-exports Validator


InferValidatorInput

Re-exports InferValidatorInput


InferValidatorOutput

Re-exports InferValidatorOutput


OpenValidatePayload

Re-exports OpenValidatePayload


PayloadValidationError

Re-exports PayloadValidationError


isPayloadValidationError

Re-exports isPayloadValidationError


LayerKeyError

Re-exports LayerKeyError


isLayerKeyError

Re-exports isLayerKeyError


LayerCancelledError

Re-exports LayerCancelledError


isLayerCancelledError

Re-exports isLayerCancelledError


ValidationIssue

Re-exports ValidationIssue


LayerCancelReason

Re-exports LayerCancelReason


LayerKey

Re-exports LayerKey


LayerPhase

Re-exports LayerPhase


LayerTransition

Re-exports LayerTransition


LayerActionStatus

Re-exports LayerActionStatus


BlockerFn

Re-exports BlockerFn


StackBlockerFn

Re-exports StackBlockerFn


DismissAllMode

Re-exports DismissAllMode


DismissOptions

Re-exports DismissOptions


DismissAllOptions

Re-exports DismissAllOptions


LayerState

Re-exports LayerState


LayerCallContext

Re-exports LayerCallContext


LayerComponentProps

Re-exports LayerComponentProps


LayerComponent

Re-exports LayerComponent


LayerOptions

Re-exports LayerOptions


PayloadArg

Re-exports PayloadArg


ResponseArgTuple

Re-exports ResponseArgTuple


EndArgs

Re-exports EndArgs


DismissAllArgs

Re-exports DismissAllArgs


CancelQueuedArgs

Re-exports CancelQueuedArgs


HandleDismissArgs

Re-exports HandleDismissArgs


OpenLayerOptions

Re-exports OpenLayerOptions


OmitKeyof

Re-exports OmitKeyof


SerialOnLoadError

Re-exports SerialOnLoadError


StackOptions

Re-exports StackOptions


StackDefaults

Re-exports StackDefaults


LayerClientOptions

Re-exports LayerClientOptions


StackNotifyAction

Re-exports StackNotifyAction


LayerNotifyView

Re-exports LayerNotifyView


StackNotifyEvent

Re-exports StackNotifyEvent


Register

Re-exports Register


DefaultLayerError

Re-exports DefaultLayerError

Was this page helpful?