2022-04-01 05:36:44 +13:00
|
|
|
defmodule AshHqWeb.Components.RightNav do
|
2022-08-07 11:22:58 +12:00
|
|
|
@moduledoc "The right nav shown for functions in a module."
|
2022-04-01 05:36:44 +13:00
|
|
|
use Surface.Component
|
|
|
|
|
2022-08-07 11:22:58 +12:00
|
|
|
prop functions, :list, default: []
|
|
|
|
prop module, :string, required: true
|
2022-04-01 05:36:44 +13:00
|
|
|
|
|
|
|
def render(assigns) do
|
|
|
|
~F"""
|
2022-09-08 09:03:48 +12:00
|
|
|
<div id="right-nav" class="w-min hidden lg:flex flex-col overflow-y-auto" phx-hook="RightNav">
|
2022-09-08 15:02:18 +12:00
|
|
|
<a id="right-nav-module-docs" class="hover:text-primary-light-300 right-nav" href="#module-docs">
|
2022-04-01 09:59:53 +13:00
|
|
|
{@module}
|
|
|
|
</a>
|
2022-04-01 14:29:58 +13:00
|
|
|
{#for %{type: :callback} = function <- @functions}
|
2022-04-02 08:11:17 +13:00
|
|
|
<a
|
2022-08-04 01:53:59 +12:00
|
|
|
id={"right-nav-callback-#{function.sanitized_name}-#{function.arity}"}
|
2022-09-08 15:02:18 +12:00
|
|
|
class="hover:text-primary-light-300 right-nav"
|
2022-08-04 01:53:59 +12:00
|
|
|
href={"#function-#{function.sanitized_name}-#{function.arity}"}
|
2022-04-02 08:11:17 +13:00
|
|
|
>
|
2022-04-01 14:29:58 +13:00
|
|
|
{"#{function.name}/#{function.arity}"}
|
|
|
|
</a>
|
|
|
|
{/for}
|
|
|
|
|
|
|
|
{#for %{type: :function} = function <- @functions}
|
2022-04-02 08:11:17 +13:00
|
|
|
<a
|
2022-08-04 01:53:59 +12:00
|
|
|
id={"right-nav-function-#{function.sanitized_name}-#{function.arity}"}
|
2022-09-08 15:02:18 +12:00
|
|
|
class="hover:text-primary-light-300 right-nav"
|
2022-09-08 03:53:36 +12:00
|
|
|
href={"#function-#{function.sanitized_name}-#{function.arity}"}
|
2022-04-02 08:11:17 +13:00
|
|
|
>
|
2022-04-01 14:29:58 +13:00
|
|
|
{"#{function.name}/#{function.arity}"}
|
|
|
|
</a>
|
|
|
|
{/for}
|
|
|
|
|
|
|
|
{#for %{type: :macro} = function <- @functions}
|
2022-04-02 08:11:17 +13:00
|
|
|
<a
|
2022-08-04 01:53:59 +12:00
|
|
|
id={"right-nav-macro-#{function.sanitized_name}-#{function.arity}"}
|
2022-09-08 15:02:18 +12:00
|
|
|
class="hover:text-primary-light-300 right-nav"
|
2022-08-04 01:53:59 +12:00
|
|
|
href={"#macro-#{function.sanitized_name}-#{function.arity}"}
|
2022-04-02 08:11:17 +13:00
|
|
|
>
|
2022-04-01 05:36:44 +13:00
|
|
|
{"#{function.name}/#{function.arity}"}
|
|
|
|
</a>
|
|
|
|
{/for}
|
|
|
|
</div>
|
|
|
|
"""
|
|
|
|
end
|
|
|
|
end
|