defmodule DiffuserWeb.PromptRequestLive.Index do use DiffuserWeb, :live_view alias Diffuser.Generator alias Diffuser.Generator.PromptRequest @impl true def mount(_params, _session, socket) do {:ok, socket} end @impl true def handle_params(params, _url, socket) do page = list_prompt_requests(params) socket = socket |> apply_action(socket.assigns.live_action, params) |> assign(:page, page) {:noreply, socket} end defp apply_action(socket, :edit, %{"id" => id}) do socket |> assign(:page_title, "Edit Prompt request") |> assign(:prompt_request, Generator.get_prompt_request!(id)) end defp apply_action(socket, :new, _params) do socket |> assign(:page_title, "New Prompt request") |> assign(:prompt_request, %PromptRequest{}) end defp apply_action(socket, :index, _params) do socket |> assign(:page_title, "Listing Prompt requests") |> assign(:prompt_request, nil) end @impl true def handle_event("delete", %{"id" => id}, socket) do prompt_request = Generator.get_prompt_request!(id) {:ok, _} = Generator.delete_prompt_request(prompt_request) {:noreply, assign(socket, :page, list_prompt_requests(%{"page" => "2"}))} end defp list_prompt_requests(params) do Generator.paginate_prompt_requests(params) end end