diff --git a/lib/mv_web/live/user_live/form.ex b/lib/mv_web/live/user_live/form.ex index 9619a15..6934cf5 100644 --- a/lib/mv_web/live/user_live/form.ex +++ b/lib/mv_web/live/user_live/form.ex @@ -404,7 +404,19 @@ defmodule MvWeb.UserLive.Form do def handle_event("member_dropdown_keydown", %{"key" => "Enter"}, socket) do return_if_dropdown_closed(socket, fn -> - select_focused_member(socket) + case socket.assigns.focused_member_index do + nil -> + {:noreply, socket} + + index -> + member = Enum.at(socket.assigns.available_members, index) + + if member do + handle_event("select_member", %{"id" => member.id}, socket) + else + {:noreply, socket} + end + end end) end @@ -481,18 +493,6 @@ defmodule MvWeb.UserLive.Form do end end - # Select the currently focused member from the dropdown - @spec select_focused_member(Phoenix.LiveView.Socket.t()) :: - {:noreply, Phoenix.LiveView.Socket.t()} - defp select_focused_member(socket) do - with index when not is_nil(index) <- socket.assigns.focused_member_index, - member when not is_nil(member) <- Enum.at(socket.assigns.available_members, index) do - handle_event("select_member", %{"id" => member.id}, socket) - else - _ -> {:noreply, socket} - end - end - @spec assign_form(Phoenix.LiveView.Socket.t()) :: Phoenix.LiveView.Socket.t() defp assign_form(%{assigns: %{user: user, show_password_fields: show_password_fields}} = socket) do form =