From 673746f045edf8eba5c9daa4369c6b848b35efb7 Mon Sep 17 00:00:00 2001 From: carla Date: Tue, 30 Sep 2025 16:19:36 +0200 Subject: [PATCH] docs: formatting, docs and accessibility fix --- .../live/components/sort_header_component.ex | 25 ++++++------- lib/mv_web/live/member_live/index.ex | 36 ++++++++----------- 2 files changed, 26 insertions(+), 35 deletions(-) diff --git a/lib/mv_web/live/components/sort_header_component.ex b/lib/mv_web/live/components/sort_header_component.ex index 147001e..e69357e 100644 --- a/lib/mv_web/live/components/sort_header_component.ex +++ b/lib/mv_web/live/components/sort_header_component.ex @@ -14,32 +14,29 @@ defmodule MvWeb.Components.SortHeaderComponent do {:ok, assign(socket, assigns)} end + # Check if we can add the aria-sort label directly to the daisyUI header + # aria-sort={aria_sort(@field, @sort_field, @sort_order)} @impl true def render(assigns) do ~H""" """ end @@ -55,10 +52,10 @@ defmodule MvWeb.Components.SortHeaderComponent do # ------------------------------------------------- defp aria_sort(field, sort_field, dir) when field == sort_field do case dir do - :asc -> "ascending" - :desc -> "descending" + :asc -> gettext("ascending") + :desc -> gettext("descending") end end - defp aria_sort(_, _, _), do: "none" + defp aria_sort(_, _, _), do: gettext("Click to sort") end diff --git a/lib/mv_web/live/member_live/index.ex b/lib/mv_web/live/member_live/index.ex index db0bcf3..6a7daab 100644 --- a/lib/mv_web/live/member_live/index.ex +++ b/lib/mv_web/live/member_live/index.ex @@ -170,6 +170,21 @@ defmodule MvWeb.MemberLive.Index do assign(socket, :members, members) end + # ------------------------------------------------------------- + # Helper Functions + # ------------------------------------------------------------- + + # Functions to toggle sorting order + defp toggle_order(:asc), do: :desc + defp toggle_order(:desc), do: :asc + defp toggle_order(nil), do: :asc + + # Function to sort the column if needed + defp maybe_sort(query, nil, _), do: query + defp maybe_sort(query, field, :asc), do: Ash.Query.sort(query, [{field, :asc}]) + defp maybe_sort(query, field, :desc), do: Ash.Query.sort(query, [{field, :desc}]) + + # Function to maybe update the sort defp maybe_update_sort(socket, %{"sort_field" => sf, "sort_order" => so}) do field = try do @@ -180,31 +195,10 @@ defmodule MvWeb.MemberLive.Index do order = if so in ["asc", "desc"], do: String.to_atom(so), else: socket.assigns.sort_order - IO.inspect(order) - socket |> assign(:sort_field, field) |> assign(:sort_order, order) end - # ------------------------------------------------------------- - # Helper Functions - # ------------------------------------------------------------- - - # Functions to toggle sorting order - defp toggle_order(:asc), do: :desc - defp toggle_order(:desc), do: :asc - defp toggle_order(nil), do: :asc - - # Function to turn a string into an atom only if it already exists - defp maybe_atom(nil), do: nil - defp maybe_atom(atom) when is_atom(atom), do: atom - defp maybe_atom(str) when is_binary(str), do: String.to_existing_atom(str) - - # Function to sort the column if needed - defp maybe_sort(query, nil, _), do: query - defp maybe_sort(query, field, :asc), do: Ash.Query.sort(query, [{field, :asc}]) - defp maybe_sort(query, field, :desc), do: Ash.Query.sort(query, [{field, :desc}]) - # no changes defp maybe_update_sort(socket, _), do: socket end