import type { Layer } from "./layer"; import { LayerStack } from "./layerStack"; import type { DefaultLayerError, EndArgs, LayerCallContext, LayerState, } from "./types"; /** * Creates the framework-neutral imperative context passed to a layer component. * Adapters provide rendering; stack and layer instances retain lifecycle control. */ export function createCallContext
( stack: LayerStack
, layer: Layer
, state: LayerState
, rootProps?: RootProps, ): LayerCallContext
{
return {
end: (...args: EndArgs ) => stack.update(layer, patch),
setRunning: (running: boolean) => stack.setRunning(layer, running),
settle: () => stack.settle(layer),
ended: state.ended,
index: state.index,
stackSize: state.stackSize,
root: rootProps as RootProps,
stackId: stack.id,
layerId: layer.id,
};
}