defmodule Shino.UI.Helpers do
@moduledoc false
use Phoenix.Component
@doc false
def mc(nil), do: nil
def mc(classes) when is_list(classes) do
classes
|> List.flatten()
|> Enum.reject(&(&1 == nil))
|> Enum.join(" ")
end
@doc false
def ms(nil), do: nil
def ms(styles) when is_list(styles), do: Enum.join(styles, " ")
@doc false
def assign_default_global(assigns, key, default) when is_map(assigns) and is_map(default) do
assign(assigns, key, Map.merge(default, assigns[key]))
end
@doc """
Renders an icon.
"""
attr :name, :string, required: true
attr :class, :any, default: nil
attr :rest, :global
def icon(%{name: "tabler-x"} = assigns) do
~H"""
"""
end
def icon(%{name: "tabler-menu-2"} = assigns) do
~H"""
"""
end
def icon(%{name: "tabler-chevron-right"} = assigns) do
~H"""
"""
end
def icon(%{name: "tabler-chevron-left"} = assigns) do
~H"""
"""
end
def icon(%{name: "tabler-dots"} = assigns) do
~H"""
"""
end
def icon(%{name: "loader-circle"} = assigns) do
~H"""
"""
end
end