Migrate from channel to phoenix live view.
Move phoenix config to ui project. Sync progress on page load.
This commit is contained in:
parent
e888f1330b
commit
ad24ec96ac
26 changed files with 120 additions and 164 deletions
23
ui/lib/ui_web/live/morse_live.ex
Normal file
23
ui/lib/ui_web/live/morse_live.ex
Normal file
|
@ -0,0 +1,23 @@
|
|||
defmodule UiWeb.MorseLive do
|
||||
use Phoenix.LiveView
|
||||
|
||||
@topic "morse_progress"
|
||||
|
||||
def render(assigns) do
|
||||
UiWeb.PageView.render("morse.html", assigns)
|
||||
end
|
||||
|
||||
def mount(_session, socket) do
|
||||
UiWeb.Endpoint.subscribe(@topic)
|
||||
{:ok, assign(socket, progress: Morse.Server.progress())}
|
||||
end
|
||||
|
||||
def handle_event("start_morse", _value, socket) do
|
||||
Morse.Server.start_morse()
|
||||
{:noreply, socket}
|
||||
end
|
||||
|
||||
def handle_info(progress, socket) do
|
||||
{:noreply, assign(socket, progress: progress)}
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue