diff --git a/lib/live_admin/components.ex b/lib/live_admin/components.ex index b0d16f7..b20db96 100644 --- a/lib/live_admin/components.ex +++ b/lib/live_admin/components.ex @@ -88,7 +88,7 @@ defmodule LiveAdmin.Components do

{@field |> humanize() |> trans()}

<%= if @value do %> - <.inputs_for :let={embed_form} field={@form[@field]} skip_hidden={true}> + <.inputs_for :let={embed_form} field={@form[@field]}> <%= if sortable?(@value) do %>
{trans("Move here")}
<% end %> diff --git a/test/live_admin/components/container_test.exs b/test/live_admin/components/container_test.exs index dd0acb2..d723193 100644 --- a/test/live_admin/components/container_test.exs +++ b/test/live_admin/components/container_test.exs @@ -262,6 +262,28 @@ defmodule LiveAdmin.Components.ContainerTest do end end + describe "edit resource after adding singular embed with only array fields" do + setup %{conn: conn} do + user = Repo.insert!(%User{}) + + {:ok, view, _} = live(conn, "/user/edit/#{user.id}") + + view + |> element("form") + |> render_change(%{"params" => %{"private_data_sort" => "0"}}) + + view + |> element("form") + |> render_change(%{"params" => %{"name" => "test"}}) + + %{view: view} + end + + test "keeps embed form field", %{view: view} do + assert has_element?(view, "#params_private_data_0_aliases_array_input") + end + end + describe "edit resource with plural embed with multiple entries" do setup %{conn: conn} do post = Repo.insert!(%Post{title: "test", previous_versions: [%Version{}, %Version{}]}) diff --git a/test/support/resources.ex b/test/support/resources.ex index 2d90dde..d68f459 100644 --- a/test/support/resources.ex +++ b/test/support/resources.ex @@ -37,6 +37,7 @@ defmodule LiveAdminTest.User do field(:encrypted_password, :string) embeds_one(:settings, LiveAdminTest.Settings) + embeds_one(:private_data, LiveAdminTest.PrivateData) end def user_task(_, _), do: {:ok, "worked"} @@ -96,6 +97,15 @@ defmodule LiveAdminTest.Settings do end end +defmodule LiveAdminTest.PrivateData do + use Ecto.Schema + + @primary_key false + embedded_schema do + field(:aliases, {:array, :string}) + end +end + defmodule LiveAdminTest.Post.Version do use Ecto.Schema