Current section
Files
Jump to
Current section
Files
lib/console_web/live/hooks/nav.ex
defmodule ReflectOS.Console.LiveHooks.Nav do
import Phoenix.LiveView
import Phoenix.Component, only: [assign: 2]
def on_mount(:default, _params, _session, socket) do
{:cont,
socket
|> attach_hook(:active_tab, :handle_params, &set_active_tab/3)}
end
defp set_active_tab(_params, _url, socket) do
active_tab =
case {socket.view, socket.assigns.live_action} do
{ReflectOS.ConsoleWeb.DashboardLive.Index, _} ->
:dashboard
{ReflectOS.ConsoleWeb.SectionLive.Index, _} ->
:sections
{ReflectOS.ConsoleWeb.LayoutLive.Index, _} ->
:layouts
{ReflectOS.ConsoleWeb.LayoutManagerLive.Index, _} ->
:layout_managers
{ReflectOS.ConsoleWeb.SystemLive.Settings, _} ->
:settings
_ ->
nil
end
{:cont, assign(socket, active_tab: active_tab)}
end
end