diff --git a/lib/mv_web/components/core_components.ex b/lib/mv_web/components/core_components.ex index 3804505..be64655 100644 --- a/lib/mv_web/components/core_components.ex +++ b/lib/mv_web/components/core_components.ex @@ -124,7 +124,7 @@ defmodule MvWeb.CoreComponents do ## Examples - <.dropdown_menu items={@items} open={@open} phx-target={@myself} /> + <.dropdown_menu items={@items} open={@open} phx_target={@myself} /> """ attr :id, :string, default: "dropdown-menu" attr :items, :list, required: true, doc: "List of %{label: string, value: any} maps" @@ -134,24 +134,9 @@ defmodule MvWeb.CoreComponents do attr :selected, :map, default: %{} attr :open, :boolean, default: false, doc: "Whether the dropdown is open" attr :show_select_buttons, :boolean, default: false, doc: "Show select all/none buttons" - attr :phx_target, :any, default: nil + attr :phx_target, :any, required: true, doc: "The LiveView/LiveComponent target for events" def dropdown_menu(assigns) do - unless Map.has_key?(assigns, :phx_target) do - raise ArgumentError, ":phx_target is required in dropdown_menu/1" - end - - assigns = - assign_new(assigns, :items, fn -> [] end) - |> assign_new(:button_label, fn -> "Dropdown" end) - |> assign_new(:icon, fn -> nil end) - |> assign_new(:checkboxes, fn -> false end) - |> assign_new(:selected, fn -> %{} end) - |> assign_new(:open, fn -> false end) - |> assign_new(:show_select_buttons, fn -> false end) - |> assign(:phx_target, assigns.phx_target) - |> assign_new(:id, fn -> "dropdown-menu" end) - ~H"""