defmodule PetalComponents.Breadcrumbs do use Phoenix.Component alias PetalComponents.Heroicons alias PetalComponents.Link # Example: # <.breadcrumbs separator="chevron" links={[ # %{ label: "Link 1", to: "/" }, # %{ label: "Link 1", to: "/", link_type: "patch|a|redirect" } # ]}/> # prop links, :list # prop separator, :string, options: ["slash", "chevron"] def breadcrumbs(assigns) do assigns = assigns |> assign_new(:separator, fn -> "slash" end) |> assign_new(:class, fn -> "" end) |> assign_new(:link_class, fn -> "" end) ~H"""
<%= for {link, counter} <- Enum.with_index(@links) do %> <%= if counter > 0 do %> <.separator type={@separator} /> <% end %> <%= link.label %> <% end %>
""" end defp separator(%{type: "slash"} = assigns) do ~H"""
/
""" end defp separator(%{type: "chevron"} = assigns) do ~H"""
""" end defp get_breadcrumb_classes(user_classes), do: "hover:underline flex text-gray-500 dark:text-gray-400 #{user_classes}" end