diff --git a/lib/ash_hq_web/components/doc_sidebar.ex b/lib/ash_hq_web/components/doc_sidebar.ex index eb7de5e..a413595 100644 --- a/lib/ash_hq_web/components/doc_sidebar.ex +++ b/lib/ash_hq_web/components/doc_sidebar.ex @@ -4,6 +4,7 @@ defmodule AshHqWeb.Components.DocSidebar do alias AshHqWeb.DocRoutes alias Surface.Components.LivePatch + alias Phoenix.LiveView.JS prop class, :css_class, default: "" prop libraries, :list, required: true @@ -47,31 +48,39 @@ defmodule AshHqWeb.Components.DocSidebar do {#for {category, guides_by_library} <- guides_by_category_and_library(@libraries, @selected_versions)}
-
- {#for {library, guides} <- guides_by_library} -
  • - {library} - -
  • - {/for} +
    + {#for {library, guides} <- guides_by_library} +
  • + {library} + +
  • + {/for} +
    {/for}
    Reference @@ -79,41 +88,55 @@ defmodule AshHqWeb.Components.DocSidebar do
    {#if !Enum.empty?(get_extensions(@libraries, @selected_versions))}
    -
    {/if} - {#for {library, extensions} <- get_extensions(@libraries, @selected_versions)} -
  • - {library} -
      - {#for extension <- extensions} -
    • - - {render_icon(assigns, extension.type)} - {extension.name} - - {#if @extension && @extension.id == extension.id && !Enum.empty?(extension.dsls)} - {render_dsls(assigns, extension.dsls, [])} - {/if} -
    • - {/for} -
    -
  • - {/for} +
    + {#for {library, extensions} <- get_extensions(@libraries, @selected_versions)} +
  • + {library} +
      + {#for extension <- extensions} +
    • + + {render_icon(assigns, extension.type)} + {extension.name} + + {#if @extension && @extension.id == extension.id && !Enum.empty?(extension.dsls)} + {render_dsls(assigns, extension.dsls, [])} + {/if} +
    • + {/for} +
    +
  • + {/for} +
    -
    +
    {#for {category, modules} <- modules_by_category(@libraries, @selected_versions)}
    {category} @@ -123,8 +146,7 @@ defmodule AshHqWeb.Components.DocSidebar do @@ -133,6 +155,7 @@ defmodule AshHqWeb.Components.DocSidebar do {/for} {/for} +
    @@ -343,4 +366,11 @@ defmodule AshHqWeb.Components.DocSidebar do end) ) end + + defp collapse(id, js \\ %JS{}) do + js + |> JS.toggle(to: "##{id}", time: 0) + |> JS.toggle(to: "##{id}-chevron-down", time: 0) + |> JS.toggle(to: "##{id}-chevron-right", time: 0) + end end