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),
)