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, assign(socket, :prompt_requests, list_prompt_requests())} end @impl true def handle_params(params, _url, socket) do {:noreply, apply_action(socket, socket.assigns.live_action, params)} 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, :prompt_requests, list_prompt_requests())} end defp list_prompt_requests do Generator.list_prompt_requests() end end