diff --git a/lib/live_select/component.ex b/lib/live_select/component.ex index 5e09027..44cfee8 100644 --- a/lib/live_select/component.ex +++ b/lib/live_select/component.ex @@ -199,7 +199,11 @@ defmodule LiveSelect.Component do &if &1.assigns.mode == :single do clear(&1, %{input_event: false, parent_event: &1.assigns[:"phx-focus"]}) else - parent_event(&1, &1.assigns[:"phx-focus"], %{id: &1.assigns.id}) + if &1.assigns.tags_mode == :multiple_select do + &1 + else + parent_event(&1, &1.assigns[:"phx-focus"], %{id: &1.assigns.id}) + end end ) |> assign(hide_dropdown: false) @@ -464,8 +468,7 @@ defmodule LiveSelect.Component do socket |> assign( - active_option: - if(multi_select_mode?(socket), do: socket.assigns.active_option, else: -1), + active_option: if(multi_select_mode?(socket), do: socket.assigns.active_option, else: -1), selection: selection, hide_dropdown: not multi_select_mode?(socket) ) @@ -689,7 +692,7 @@ defmodule LiveSelect.Component do end def already_selected?(option, selection) do - option.label in Enum.map(selection, & &1.label) + Enum.any?(selection, fn item -> item.label == option.label end) end defp multi_select_mode?(socket) do