fix: don't validate values that aren't maps

This commit is contained in:
Zach Daniel 2022-08-23 22:26:04 -04:00
parent 2e061428a4
commit 7b9f3070a6

View file

@ -937,6 +937,7 @@ defmodule AshPhoenix.Form do
form_params || %{}
end
if values_are_maps(form_params) do
new_forms =
Enum.reduce(form_params, forms, fn {index, params}, forms ->
case Enum.find(form.forms[key] || [], &matcher.(&1, params, form, key, index)) do
@ -1036,6 +1037,10 @@ defmodule AshPhoenix.Form do
{new_forms, new_params}
else
{forms, params}
end
else
if is_map(form_params) do
new_forms =
if form.forms[key] do
new_form =
@ -1078,6 +1083,9 @@ defmodule AshPhoenix.Form do
)
{new_forms, new_params}
else
{forms, params}
end
end
_ ->
@ -1222,6 +1230,14 @@ defmodule AshPhoenix.Form do
end)
end
defp values_are_maps(map) when is_map(map) do
map
|> Map.values()
|> Enum.all?(&is_map/1)
end
defp values_are_maps(_), do: false
@submit_opts [
force?: [
type: :boolean,