defmodule MoonBackofficeWeb.Subbar do use Phoenix.Component import Customizations.Subbar import MoonBackofficeWeb.CoreComponents, only: [icon: 1] attr :parameters, :list, required: true defp list_item(%{parameters: %{active: true}} = assigns) do %{ class: item_class, icon: %{ image: icon, class: icon_class }} = pick_outfit(:active_item) assigns = assign(assigns, :item_class, item_class) |> assign(icon_class: icon_class) |> assign(icon: icon) ~H"""
  • <.icon name={assigns.icon} class={assigns.icon_class} /> <%= @parameters.name %>
  • """ end defp list_item(assigns) do %{ class: item_class, anchor: anchor_class, icon: %{ image: icon, class: icon_class }} = pick_outfit(:item) assigns = assign(assigns, :item_class, item_class) |> assign(icon_class: icon_class) |> assign(icon: icon) |> assign(anchor_class: anchor_class) ~H"""
  • <.icon name={assigns.icon} class={assigns.icon_class} /> <%= @parameters.name %>
  • """ end attr :parameters, :list, required: true defp subsection(assigns) do %{ class: header_class, icon: %{ image: icon, class: icon_class }, subclass: list_class } = pick_outfit(:subsection) assigns = assign(assigns, :header_class, header_class) |> assign(icon_class: icon_class) |> assign(icon: icon) |> assign(list_class: list_class) ~H"""
    <.icon name={assigns.icon} class={assigns.icon_class} /> <%= @parameters.name %>
    """ end attr :items, :list, required: true def subbar(assigns) do %{ class: class } = pick_outfit(:list) assigns = assign(assigns, :class, class) ~H""" """ end end