patch
This commit is contained in:
@ -14,12 +14,15 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
||||
for website <- websites, do: monitor_website(website)
|
||||
end
|
||||
|
||||
{:ok, stream(socket, :websites, websites)}
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:deleted, [])
|
||||
|> stream(:websites, websites)}
|
||||
end
|
||||
|
||||
def monitor_website(website) do
|
||||
me = self()
|
||||
Engine.start_link(website, on_update: fn website -> send me, {:update, website} end)
|
||||
Engine.start_link(website, on_update: fn website -> send(me, {:update, website}) end)
|
||||
end
|
||||
|
||||
@impl true
|
||||
@ -45,6 +48,15 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
||||
|> assign(:website, nil)
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_info({:update, website}, %{deleted: deleted_website} = socket) do
|
||||
{:noreply,
|
||||
unless(website.id in deleted_website,
|
||||
do: stream_insert(socket, :websites, website),
|
||||
else: socket
|
||||
)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def handle_info({:update, website}, socket) do
|
||||
{:noreply, stream_insert(socket, :websites, website)}
|
||||
@ -71,9 +83,11 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
||||
end
|
||||
|
||||
def website_status(%{website: %{status: {:ok, code, ping}}} = assigns) do
|
||||
assigns = assigns
|
||||
assigns =
|
||||
assigns
|
||||
|> assign(:ping, ping)
|
||||
|> assign(:code, code)
|
||||
|
||||
~H"""
|
||||
<span class=""><%= @ping %></span>
|
||||
"""
|
||||
@ -84,5 +98,4 @@ defmodule WebmonWeb.WebsiteLive.Index do
|
||||
<span class="text-red">—</span>
|
||||
"""
|
||||
end
|
||||
|
||||
end
|
||||
|
Reference in New Issue
Block a user