defmodule EventStoreDashboard.Components.StreamModal do @moduledoc false use Phoenix.Component alias EventStoreDashboard.Components.EventLink alias EventStoreDashboard.Params alias EventStoreDashboard.Repo alias EventStoreDashboard.Repo.Context alias Phoenix.LiveDashboard.PageBuilder alias Phoenix.LiveView.Socket attr(:page, PageBuilder, required: true) attr(:ctx, Context, required: true) attr(:stream_uuid, :string, required: true) attr(:socket, Socket, required: true) def render(assigns) do stream = fetch_stream(assigns.page.node, assigns.ctx, assigns.stream_uuid) snapshot = fetch_snapshot(assigns.page.node, assigns.ctx, assigns.stream_uuid) assigns = assign(assigns, stream: stream, snapshot: snapshot) ~H"""
| Stream | {@stream.stream_uuid} |
| ID | {@stream.stream_id} |
| Stream Version |
|
| Status | <.status_badge status={@stream.status} /> |
| Snapshot | <.link patch={snapshot_modal_path(@socket, @page, @ctx, @snapshot.source_uuid)} class="es-modal-trigger" > @{@snapshot.source_version} 0} class="badge badge-warning ml-2"> {snapshot_lag(@stream, @snapshot)} events behind |
| Created at | {@stream.created_at} |
| Deleted at | {@stream.deleted_at} |