Current section
Files
Jump to
Current section
Files
lib/moon_backoffice_web/components/navbar.ex
defmodule MoonBackofficeWeb.Navbar do
use Phoenix.Component
import Customizations.Navbar
import MoonBackofficeWeb.CoreComponents, only: [icon: 1]
attr :parameters, :list, required: true
defp nav_button(%{parameters: %{active: true}} = assigns) do
%{ class: class, outline: span, icon: icon } = pick_outfit(:active_item)
assigns = assign(assigns, :class, class)
|> assign(span: span)
|> assign(icon: icon)
~H"""
<p class={assigns.class}>
<span class={assigns.span}>
<.icon name={@parameters.icon} class={assigns.icon} />
</span>
<%= @parameters.name %>
</p>
"""
end
defp nav_button(assigns) do
%{ class: class, outline: span, icon: icon } = pick_outfit(:item)
assigns = assign(assigns, :class, class)
|> assign(span: span)
|> assign(icon: icon)
~H"""
<a href={@parameters.path} class={assigns.class}>
<span class={assigns.span}><.icon name={@parameters.icon} class={assigns.icon} /></span>
<%= @parameters.name %>
</a>
"""
end
attr :items, :list, required: true
def navbar(assigns) do
%{ class: class } = pick_outfit(:list)
assigns = assign(assigns, :class, class)
~H"""
<ul class={assigns.class}>
<%= for params <- @items do %>
<li>
<.nav_button parameters={params} />
</li>
<% end %>
</ul>
"""
end
end