Show a dynamically updated list of NTS servers #1
|
@ -0,0 +1,21 @@
|
|||
defmodule ChronoscopeWeb.IndexLive do
|
||||
use ChronoscopeWeb, :live_view
|
||||
|
||||
@topic "test"
|
||||
|
||||
def mount(_params, _session, socket) do
|
||||
ChronoscopeWeb.Endpoint.subscribe(@topic)
|
||||
ChronoscopeWeb.Endpoint.broadcast_from(self(), @topic, "", %{temperature: 100})
|
||||
{:ok, assign(socket, :temperature, 100)}
|
||||
end
|
||||
|
||||
def handle_event("inc_temperature", _params, socket) do
|
||||
updated = socket.assigns.temperature + 1
|
||||
ChronoscopeWeb.Endpoint.broadcast_from(self(), @topic, "", %{temperature: updated})
|
||||
{:noreply, assign(socket, :temperature, updated)}
|
||||
end
|
||||
|
||||
def handle_info(%{topic: @topic, payload: state}, socket) do
|
||||
{:noreply, assign(socket, state)}
|
||||
end
|
||||
end
|
|
@ -0,0 +1,6 @@
|
|||
<div>
|
||||
Live!
|
||||
<br />
|
||||
Current temperature: <%= @temperature %>°F
|
||||
<button phx-click="inc_temperature">+</button>
|
||||
</div>
|
|
@ -14,6 +14,12 @@ defmodule ChronoscopeWeb.Router do
|
|||
plug :accepts, ["json"]
|
||||
end
|
||||
|
||||
scope "/test", ChronoscopeWeb do
|
||||
pipe_through :browser
|
||||
|
||||
live "/", IndexLive
|
||||
end
|
||||
|
||||
scope "/", ChronoscopeWeb do
|
||||
pipe_through :browser
|
||||
|
||||
|
|
Loading…
Reference in New Issue