mirror of
https://github.com/livebook-dev/livebook.git
synced 2024-09-25 04:15:59 +08:00
ce7adef7e4
* Add support for LiveWidget.VegaLite * LiveWidget -> Kino * Show an error when rendering unsupported Kino widget * Match on Kino.Widget * Add catch-all for unknown outputs
23 lines
519 B
Elixir
23 lines
519 B
Elixir
defmodule LivebookWeb.SessionLive.VegaLiteComponent do
|
|
use LivebookWeb, :live_component
|
|
|
|
@impl true
|
|
def mount(socket) do
|
|
{:ok, socket}
|
|
end
|
|
|
|
@impl true
|
|
def update(assigns, socket) do
|
|
socket = assign(socket, id: assigns.id)
|
|
{:ok, push_event(socket, "vega_lite:#{socket.assigns.id}:init", %{"spec" => assigns.spec})}
|
|
end
|
|
|
|
@impl true
|
|
def render(assigns) do
|
|
~L"""
|
|
<div id="vega-lite-<%= @id %>" phx-hook="VegaLite" phx-update="ignore" data-id="<%= @id %>">
|
|
</div>
|
|
"""
|
|
end
|
|
end
|