sprocket/context

Types

pub type ComponentHooks =
  OrderedMap(Int, Hook)
pub type ComponentWip {
  ComponentWip(
    hooks: ComponentHooks,
    index: Int,
    is_first_render: Bool,
  )
}

Constructors

  • ComponentWip(
      hooks: ComponentHooks,
      index: Int,
      is_first_render: Bool,
    )
pub type Context {
  Context(
    wip: ComponentWip,
    handlers: List(EventHandler),
    ws: Option(WebSocket),
    render_update: fn() -> Nil,
    update_hook: fn(Unique, fn(Hook) -> Hook) -> Nil,
  )
}

Constructors

  • Context(
      wip: ComponentWip,
      handlers: List(EventHandler),
      ws: Option(WebSocket),
      render_update: fn() -> Nil,
      update_hook: fn(Unique, fn(Hook) -> Hook) -> Nil,
    )
pub type EventHandler {
  EventHandler(id: Unique, handler: CallbackFn)
}

Constructors

  • EventHandler(id: Unique, handler: CallbackFn)
pub type Updater(r) {
  Updater(send: fn(r) -> Result(Nil, Nil))
}

Constructors

  • Updater(send: fn(r) -> Result(Nil, Nil))
pub type WebSocket =
  Subject(HandlerMessage)

Functions

pub fn fetch_or_init_hook(ctx: Context, init: fn() -> Hook) -> #(
  Context,
  Hook,
  Int,
)
pub fn get_event_handler(ctx: Context, id: Unique) -> #(
  Context,
  Result(EventHandler, Nil),
)
pub fn new(ws: Option(Subject(HandlerMessage))) -> Context
pub fn push_event_handler(ctx: Context, identifiable_cb: IdentifiableCallback) -> #(
  Context,
  Unique,
)
pub fn reset_for_render(ctx: Context) -> Context
pub fn update_hook(ctx: Context, hook: Hook, index: Int) -> Context
Search Document