View Source Kino.JS.Live.Context (Kino v0.17.0)
State available in Kino.JS.Live server callbacks.
Properties
:assigns- custom server state kept across callback calls:origin- an opaque identifier of the client that triggered the given action. It is set inKino.JS.Live.handle_connect/1andKino.JS.Live.handle_event/3
Summary
Functions
Stores key-value pairs in the state.
Sends an event to all clients.
Emits an event to processes subscribed to this kino.
Updates smart cell configuration.
Sends an event to a specific client.
Updates an existing key with the given function in the state.
Types
@type origin() :: nil | term()
Functions
@spec assign(t(), Enumerable.t()) :: t()
Stores key-value pairs in the state.
Examples
assign(ctx, count: 1, timestamp: DateTime.utc_now())
Sends an event to all clients.
The event is dispatched to the registered JavaScript callback on all connected clients.
Examples
broadcast_event(ctx, "new_point", %{x: 10, y: 10})
Emits an event to processes subscribed to this kino.
Consumers may subscribe to events emitted by the given instance of
Kino.JS.Live using functions in the Kino.Control module, such
as Kino.Control.stream/1.
Examples
emit_event(ctx, %{event: :click, counter: 1})
Updates smart cell configuration.
This function allows for re-configuring some of the options that can
be specified in smart cell's Kino.JS.Live.init/2.
Note that this function returns the new context, which you should return from the given handler.
Options
:editor- note that the smart cell must be initialized with an editor during init. Supported options::source,:intellisense_node,:visible
Sends an event to a specific client.
The event is dispatched to the registered JavaScript callback on the specific connected client.
Examples
send_event(ctx, origin, "new_point", %{x: 10, y: 10})
Updates an existing key with the given function in the state.
Examples
update(ctx, :count, &(&1 + 1))