sprocket/hooks

Types

pub type CallbackResult {
  CallbackResult(
    callback: CallbackFn,
    deps: Option(HookDependencies),
  )
}

Constructors

  • CallbackResult(
      callback: CallbackFn,
      deps: Option(HookDependencies),
    )
pub type ClientDispatcher =
  fn(String, Option(String)) -> Result(Nil, Nil)
pub type ClientEventHandler =
  fn(String, Option(Dynamic), ClientDispatcher) -> Nil
pub type Compared(a) {
  Changed(changed: a)
  Unchanged
}

Constructors

  • Changed(changed: a)
  • Unchanged
pub type EffectCleanup =
  Option(fn() -> Nil)
pub type EffectResult {
  EffectResult(
    cleanup: EffectCleanup,
    deps: Option(HookDependencies),
  )
}

Constructors

  • EffectResult(
      cleanup: EffectCleanup,
      deps: Option(HookDependencies),
    )
pub type Hook {
  Callback(
    id: Unique,
    callback: CallbackFn,
    trigger: HookTrigger,
    prev: Option(CallbackResult),
  )
  Effect(
    id: Unique,
    effect: fn() -> EffectCleanup,
    trigger: HookTrigger,
    prev: Option(EffectResult),
  )
  Reducer(id: Unique, reducer: Dynamic, cleanup: fn() -> Nil)
  State(id: Unique, value: Dynamic)
  Client(
    id: Unique,
    name: String,
    handle_event: Option(ClientEventHandler),
  )
}

Constructors

  • Callback(
      id: Unique,
      callback: CallbackFn,
      trigger: HookTrigger,
      prev: Option(CallbackResult),
    )
  • Effect(
      id: Unique,
      effect: fn() -> EffectCleanup,
      trigger: HookTrigger,
      prev: Option(EffectResult),
    )
  • Reducer(id: Unique, reducer: Dynamic, cleanup: fn() -> Nil)
  • State(id: Unique, value: Dynamic)
  • Client(
      id: Unique,
      name: String,
      handle_event: Option(ClientEventHandler),
    )
pub type HookDependencies =
  List(Dynamic)
pub type HookTrigger {
  OnMount
  OnUpdate
  WithDeps(deps: HookDependencies)
}

Constructors

  • OnMount
  • OnUpdate
  • WithDeps(deps: HookDependencies)

Functions

pub fn compare_deps(prev_deps: List(Dynamic), deps: List(Dynamic)) -> Compared(
  List(Dynamic),
)
pub fn dep(dependency: a) -> Dynamic
Search Document