View Source Kino.Frame (Kino v0.10.0)

A placeholder for outputs.

A frame wraps outputs that can be dynamically updated at any time.

Also see Kino.animate/3 which offers a convenience on top of this kino.

examples

Examples

frame = Kino.Frame.new() |> Kino.render()

for i <- 1..100 do
  Kino.Frame.render(frame, i)
  Process.sleep(50)
end

Or with a scheduled task in the background.

frame = Kino.Frame.new() |> Kino.render()

Kino.listen(50, fn i ->
  Kino.Frame.render(frame, i)
end)

Link to this section Summary

Functions

Renders and appends the given term to the frame.

Removes all outputs within the given frame.

Creates a new frame.

Renders the given term within the frame.

Link to this section Types

@opaque t()

Link to this section Functions

Link to this function

append(frame, term, opts \\ [])

View Source
@spec append(t(), term(), keyword()) :: :ok

Renders and appends the given term to the frame.

options

Options

  • :to - the client id to whom the update is directed. This option is useful when updating frame in response to client events, such as form submission

  • :temporary - when true, the update is applied only to the connected clients and doesn't become a part of frame history. Defaults to false, unless :to is given. Direct updates are never a part of frame history

Link to this function

clear(frame, opts \\ [])

View Source
@spec clear(
  t(),
  keyword()
) :: :ok

Removes all outputs within the given frame.

options

Options

  • :to - the client id to whom the update is directed. This option is useful when updating frame in response to client events, such as form submission

  • :temporary - when true, the update is applied only to the connected clients and doesn't become a part of frame history. Defaults to false, unless :to is given. Direct updates are never a part of frame history

@spec new(keyword()) :: t()

Creates a new frame.

options

Options

  • :placeholder - whether to render a placeholder when the frame is empty. Defaults to true
Link to this function

periodically(frame, interval_ms, acc, fun)

View Source
This function is deprecated. Use Kino.listen/3 instead.
Link to this function

render(frame, term, opts \\ [])

View Source
@spec render(t(), term(), keyword()) :: :ok

Renders the given term within the frame.

This works similarly to Kino.render/1, but the rendered output replaces existing frame contents.

options

Options

  • :to - the client id to whom the update is directed. This option is useful when updating frame in response to client events, such as form submission

  • :temporary - when true, the update is applied only to the connected clients and doesn't become a part of frame history. Defaults to false, unless :to is given. Direct updates are never a part of frame history