format and linting: reduced complexity of function
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
bb362e1636
commit
8104451d35
2 changed files with 44 additions and 40 deletions
|
|
@ -237,40 +237,8 @@ defmodule MvWeb.MemberLive.Index do
|
|||
|
||||
# Function to maybe update the sort
|
||||
defp maybe_update_sort(socket, %{"sort_field" => sf, "sort_order" => so}) do
|
||||
# Handle empty strings and nil values
|
||||
field =
|
||||
case sf do
|
||||
"" ->
|
||||
socket.assigns.sort_field
|
||||
|
||||
nil ->
|
||||
socket.assigns.sort_field
|
||||
|
||||
sf when is_binary(sf) ->
|
||||
try do
|
||||
String.to_existing_atom(sf)
|
||||
rescue
|
||||
ArgumentError -> socket.assigns.sort_field
|
||||
end
|
||||
|
||||
sf when is_atom(sf) ->
|
||||
sf
|
||||
|
||||
_ ->
|
||||
socket.assigns.sort_field
|
||||
end
|
||||
|
||||
# Validate that the field is actually sortable
|
||||
field = if valid_sort_field?(field), do: field, else: socket.assigns.sort_field
|
||||
|
||||
# Handle empty strings and nil values for sort order
|
||||
order =
|
||||
case so do
|
||||
"" -> socket.assigns.sort_order
|
||||
nil -> socket.assigns.sort_order
|
||||
so when so in ["asc", "desc"] -> String.to_atom(so)
|
||||
_ -> socket.assigns.sort_order
|
||||
end
|
||||
field = determine_field(socket.assigns.sort_field, sf)
|
||||
order = determine_order(socket.assigns.sort_order, so)
|
||||
|
||||
socket
|
||||
|> assign(:sort_field, field)
|
||||
|
|
@ -279,6 +247,42 @@ defmodule MvWeb.MemberLive.Index do
|
|||
|
||||
defp maybe_update_sort(socket, _), do: socket
|
||||
|
||||
defp determine_field(default, sf) do
|
||||
case sf do
|
||||
"" ->
|
||||
default
|
||||
|
||||
nil ->
|
||||
default
|
||||
|
||||
sf when is_binary(sf) ->
|
||||
sf
|
||||
|> String.to_existing_atom()
|
||||
|> handle_atom_conversion(default)
|
||||
|
||||
sf when is_atom(sf) ->
|
||||
handle_atom_conversion(sf, default)
|
||||
|
||||
_ ->
|
||||
default
|
||||
end
|
||||
end
|
||||
|
||||
defp handle_atom_conversion(val, default) when is_atom(val) do
|
||||
if valid_sort_field?(val), do: val, else: default
|
||||
end
|
||||
|
||||
defp handle_atom_conversion(_, default), do: default
|
||||
|
||||
defp determine_order(default, so) do
|
||||
case so do
|
||||
"" -> default
|
||||
nil -> default
|
||||
so when so in ["asc", "desc"] -> String.to_atom(so)
|
||||
_ -> default
|
||||
end
|
||||
end
|
||||
|
||||
# Function to update search parameters
|
||||
defp maybe_update_search(socket, %{"query" => query}) when query != "" do
|
||||
assign(socket, :query, query)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue