defmodule MvWeb.Components.ExportDropdown do @moduledoc """ Export dropdown component for member export (CSV/PDF). Provides an accessible dropdown menu with CSV and PDF export options. Uses the same export payload as the previous single-button export. """ use MvWeb, :live_component use Gettext, backend: MvWeb.Gettext @impl true def mount(socket) do {:ok, assign(socket, :open, false)} end @impl true def update(assigns, socket) do socket = socket |> assign(:id, assigns.id) |> assign(:export_payload_json, assigns[:export_payload_json] || "") |> assign(:selected_count, assigns[:selected_count] || 0) {:ok, socket} end @impl true def render(assigns) do button_label = gettext("Export") <> " (" <> (if assigns.selected_count == 0, do: gettext("all"), else: to_string(assigns.selected_count)) <> ")" assigns = assign(assigns, :button_label, button_label) ~H"""