Elixir/Phoenix helper to create links with "active" state.
Add phoenix_active_link
to your list of dependencies in mix.exs
:
def deps do
[{:phoenix_active_link, "~> 0.2.1"}]
end
First, add
import PhoenixActiveLink
to the quote
of the view
function in your web.ex
.
You can then use the functions as follow:
<header>
<ul>
<%= active_link(@conn, "Dashboard", to: "/", active: [{Dashboard, :index}], wrap_tag: :li) %>
<%= active_link(@conn, "Users", to: "/users", wrap_tag: :li) %>
<%= active_link(@conn, to: "/users", wrap_tag: :li) do %>
<img src="foo.png">
<% end %>
</ul>
</header>
If you prefer to write PhoenixActiveLink.active_link
explicitly, you can skip
the first step.
To specify the active and inactive tags for the wrap tag, use class_active
and class_inactive
. Example:
<%= active_link(@conn, "Home", to: "/", wrap_tag: :li, class_active: "active nav-item", class_inactive: "nav-item") %>
Defaults can be set in the config.ex
as noted in the documentation
For more information, take a look at the documentation
This library is inspired by/ported from active_link_to.