defmodule LivebookWeb.SessionLive.IndicatorsComponent do use LivebookWeb, :live_component @impl true def render(assigns) do ~H"""
<%= if @path do %> <%= if @dirty do %> <%= live_patch to: Routes.session_path(@socket, :file_settings, @session_id), class: "icon-button icon-outlined-button border-blue-400 hover:bg-blue-50 focus:bg-blue-50" do %> <.remix_icon icon="save-line" class="text-xl text-blue-500" /> <% end %> <% else %> <%= live_patch to: Routes.session_path(@socket, :file_settings, @session_id), class: "icon-button icon-outlined-button border-green-300 hover:bg-green-50 focus:bg-green-50" do %> <.remix_icon icon="save-line" class="text-xl text-green-400" /> <% end %> <% end %> <% else %> <%= live_patch to: Routes.session_path(@socket, :file_settings, @session_id), class: "icon-button icon-outlined-button border-gray-200 hover:bg-gray-100 focus:bg-gray-100" do %> <.remix_icon icon="save-line" class="text-xl text-gray-400" /> <% end %> <% end %> <%= if @runtime do %> <.global_evaluation_status status={elem(@global_evaluation_status, 0)} cell_id={elem(@global_evaluation_status, 1)} /> <% else %> <%= live_patch to: Routes.session_path(@socket, :runtime_settings, @session_id), class: "icon-button icon-outlined-button border-gray-200 hover:bg-gray-100 focus:bg-gray-100" do %> <.remix_icon icon="loader-3-line" class="text-xl text-gray-400" /> <% end %> <% end %> <%# Note: this indicator is shown/hidden using CSS based on the current mode %> ins
""" end defp global_evaluation_status(%{status: :evaluating} = assigns) do ~H""" """ end defp global_evaluation_status(%{status: :evaluated} = assigns) do ~H""" """ end defp global_evaluation_status(%{status: :stale} = assigns) do ~H""" """ end defp global_evaluation_status(%{status: :fresh} = assigns) do ~H""" """ end end