defmodule Observer.Web.Apps.ProcessActions do
@moduledoc """
Component for managing process actions like killing, garbage collecting, sending messages, and monitoring.
"""
use Observer.Web, :html
attr :id, :map, required: true
attr :on_action, :any, required: true
attr :form, :map, required: true
attr :memory_monitor, :boolean, required: true
attr :node, :atom, required: true
def content(assigns) do
~H"""
Process Actions
<.form
for={@form}
phx-submit={@on_action}
id="process-send-msg-form"
phx-change="process-message-form-update"
>
Node: {@node}
Process ID:
{process_info(@node, @id)}
"""
end
defp border_error(true), do: "border-red-200 focus:border-red-400 hover:border-red-300"
defp border_error(_false), do: "border-slate-200 focus:border-slate-400 hover:border-slate-300"
defp process_info(node, id) do
if node == node(), do: "#{id} (local)", else: "#{id} (remote)"
end
end