Packages

A collection of LiveView components for embedding IEx terminals into web pages.

Current section

Files

Jump to
underthehood lib tty_output_handler.ex
Raw

lib/tty_output_handler.ex

defmodule Underthehood.TTYOutputHandler do
@moduledoc false
use GenServer
def start(view_pid, component_id) do
GenServer.start_link(__MODULE__, {view_pid, component_id})
end
@impl true
def init({view_pid, component_id}) when is_pid(view_pid) do
{:ok, {view_pid, component_id}}
end
@impl true
def handle_info({:tty_data, data}, {view_pid, component_id} = state) do
Phoenix.LiveView.send_update(view_pid, Underthehood.TerminalComponent,
id: component_id,
data: data
)
{:noreply, state}
end
end