This commit is contained in:
2024-03-30 12:16:46 +01:00
parent 5e6035ac46
commit 7db75018b0

View File

@ -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">&mdash;</span>
"""
end
end