add patch to query
Some checks are pending
ci / docker (push) Waiting to run

This commit is contained in:
Álvaro 2024-06-16 14:52:03 +02:00
parent ccac1fec15
commit 036c0cdd5b

View File

@ -14,28 +14,36 @@ defmodule LoLAnalyticsWeb.ChampionLive.Index do
@impl true @impl true
def mount(params, _session, socket) do def mount(params, _session, socket) do
role = params["role"] || "all" role = params["role"] || "all"
patch = params["patch"] || "14.12"
socket = socket =
socket socket
|> assign(:selected_role, role) |> assign(:selected_role, role)
|> assign(:selected_patch, patch)
|> assign(:champions, %{status: :loading}) |> assign(:champions, %{status: :loading})
|> load_champs(role, "all") |> load_champs(role, patch)
{:ok, socket} {:ok, socket}
end end
def handle_params(params, _uri, socket) do def handle_params(params, _uri, socket) do
case params["role"] do role = params["role"] || "all"
role -> {:noreply, assign(socket, selected_role: role)} patch = params["patch"] || "14.12"
_ -> {:noreply, socket}
end {
:noreply,
assign(socket, selected_role: role)
|> assign(selected_patch: patch)
}
end end
@impl true @impl true
def handle_event("filter", %{"role" => selected_role} = params, socket) do def handle_event("filter", %{"role" => selected_role} = params, socket) do
query = Map.merge(params, %{patch: socket.assigns.selected_patch || "14.12"})
{:reply, %{}, {:reply, %{},
socket socket
|> push_patch(to: ~p"/champions?#{params}") |> push_patch(to: ~p"/champions?#{query}")
|> assign(:champions, %{status: :loading}) |> assign(:champions, %{status: :loading})
|> load_champs(selected_role, socket.assigns.selected_patch) |> load_champs(selected_role, socket.assigns.selected_patch)
|> assign(:selected_role, selected_role)} |> assign(:selected_role, selected_role)}
@ -43,10 +51,12 @@ defmodule LoLAnalyticsWeb.ChampionLive.Index do
def handle_info(%{patch: patch}, socket) do def handle_info(%{patch: patch}, socket) do
selected_role = socket.assigns.selected_role selected_role = socket.assigns.selected_role
query_params = %{role: selected_role, patch: patch}
socket = socket =
assign(socket, :champions, %{status: :loading}) assign(socket, :champions, %{status: :loading})
|> assign(:selected_patch, patch) |> assign(:selected_patch, patch)
|> push_patch(to: ~p"/champions?#{query_params}")
|> load_champs(selected_role, patch) |> load_champs(selected_role, patch)
{:noreply, socket} {:noreply, socket}