From bafd9c81f74c2a2580c3ca8e66642ac484295417 Mon Sep 17 00:00:00 2001 From: Thelonius Kort Date: Thu, 5 Jan 2023 22:13:57 +0100 Subject: [PATCH] Replace new.ex and edit.ex with new_edit.ex in translations_live --- lib/outlook_web/live/translation_live/edit.ex | 28 ------------------- .../translation_live/{new.ex => new_edit.ex} | 23 ++++++++++++--- lib/outlook_web/router.ex | 5 ++-- 3 files changed, 21 insertions(+), 35 deletions(-) delete mode 100644 lib/outlook_web/live/translation_live/edit.ex rename lib/outlook_web/live/translation_live/{new.ex => new_edit.ex} (56%) diff --git a/lib/outlook_web/live/translation_live/edit.ex b/lib/outlook_web/live/translation_live/edit.ex deleted file mode 100644 index e6fe131..0000000 --- a/lib/outlook_web/live/translation_live/edit.ex +++ /dev/null @@ -1,28 +0,0 @@ -defmodule OutlookWeb.TranslationLive.Edit do - use OutlookWeb, :live_view - - alias Outlook.Articles - alias Outlook.Translations - - @impl true - def render(assigns) do - ~H""" - <.live_component - module={OutlookWeb.TranslationLive.FormComponent} - id={:new} - title="New Translation" - action={@live_action} - translation={@translation} - translation_content={@translation_content} - navigate={~p"/translations"} - /> - """ - end - - @impl true - def mount(%{"id" => id} = _params, _session, socket) do - socket = socket - |> assign_new(:translation, fn -> Translations.get_translation!(id) end) - {:ok, assign_new(socket, :translation_content, fn -> socket.assigns.translation.content end)} - end -end diff --git a/lib/outlook_web/live/translation_live/new.ex b/lib/outlook_web/live/translation_live/new_edit.ex similarity index 56% rename from lib/outlook_web/live/translation_live/new.ex rename to lib/outlook_web/live/translation_live/new_edit.ex index 600b6d4..76da4dd 100644 --- a/lib/outlook_web/live/translation_live/new.ex +++ b/lib/outlook_web/live/translation_live/new_edit.ex @@ -1,15 +1,18 @@ -defmodule OutlookWeb.TranslationLive.New do +defmodule OutlookWeb.TranslationLive.NewEdit do use OutlookWeb, :live_view - alias Outlook.Articles + alias Outlook.{Articles,Translations} alias Outlook.Translations.{Translation,Basic} + alias OutlookWeb.TranslationLive.FormComponent + + @form_cmpnt_id "formkomponente" @impl true def render(assigns) do ~H""" <.live_component module={OutlookWeb.TranslationLive.FormComponent} - id={:new} + id={@form_cmpnt_id} title="New Translation" action={@live_action} translation={@translation} @@ -20,7 +23,7 @@ defmodule OutlookWeb.TranslationLive.New do end @impl true - def mount(%{"article_id" => article_id} = _params, _session, socket) do + def mount(%{"article_id" => article_id} = _params, _session, socket) when socket.assigns.live_action == :new do socket = socket |> assign_new(:translation, fn -> %Translation{ @@ -28,11 +31,23 @@ defmodule OutlookWeb.TranslationLive.New do article: get_article(article_id) } end) + |> common_assigns() {:ok, assign_new(socket, :translation_content, fn -> Basic.internal_tree_to_tunit_map(socket.assigns.translation.article.content) end)} end + def mount(%{"id" => id} = _params, _session, socket) when socket.assigns.live_action == :edit do + socket = socket + |> assign_new(:translation, fn -> Translations.get_translation!(id) end) + |> common_assigns() + {:ok, assign_new(socket, :translation_content, fn -> socket.assigns.translation.content end)} + end + defp get_article(article_id) do Articles.get_article!(article_id) end + + defp common_assigns(socket) do + assign(socket, form_cmpnt_id: @form_cmpnt_id) + end end diff --git a/lib/outlook_web/router.ex b/lib/outlook_web/router.ex index 297abaa..febb0d1 100644 --- a/lib/outlook_web/router.ex +++ b/lib/outlook_web/router.ex @@ -87,9 +87,8 @@ defmodule OutlookWeb.Router do live "/translations", TranslationLive.Index, :index - live "/translations/new", TranslationLive.New, :new - - live "/translations/:id/edit", TranslationLive.Edit, :edit + live "/translations/new", TranslationLive.NewEdit, :new + live "/translations/:id/edit", TranslationLive.NewEdit, :edit live "/translations/:id", TranslationLive.Show, :show