defmodule IngotWeb.Live.Components.ProgressComponent do use IngotWeb, :live_component @impl true def render(assigns) do ~H"""
Session Progress: {@labels_this_session} labeled
Overall Progress: {@total_labels} / {@queue_stats.total} labeled ({overall_progress_percent(assigns)}%)
{@active_labelers} active {if @active_labelers == 1, do: "labeler", else: "labelers"} {@queue_stats.remaining} samples remaining
""" end defp session_progress_percent(assigns) do if assigns.labels_this_session > 0 do min(100, assigns.labels_this_session * 2) else 0 end end defp overall_progress_percent(assigns) do if assigns.queue_stats.total > 0 do Float.round(assigns.total_labels / assigns.queue_stats.total * 100, 1) else 0 end end end