improvement: don't filter errors based on params

This commit is contained in:
Zach Daniel 2021-02-24 00:48:51 -05:00
parent d453093cb4
commit cc814a5b71

View file

@ -354,7 +354,7 @@ defimpl Phoenix.HTML.FormData, for: Ash.Changeset do
defp type_validations(_), do: []
defp form_for_errors(changeset, opts) do
defp form_for_errors(changeset, _opts) do
changeset.errors
|> Enum.filter(&(Map.has_key?(&1, :field) || Map.has_key?(&1, :fields)))
|> Enum.flat_map(fn
@ -387,23 +387,6 @@ defimpl Phoenix.HTML.FormData, for: Ash.Changeset do
_ ->
[]
end)
|> filter_errors(changeset, opts)
end
defp filter_errors(errors, changeset, opts) do
if opts[:all_errors?] || is_nil(changeset.action) do
errors
else
Enum.filter(errors, fn {field, _} ->
field in (opts[:error_keys] || []) ||
has_non_empty_key?(changeset.params, field) ||
has_non_empty_key?(changeset.params, to_string(field))
end)
end
end
defp has_non_empty_key?(params, field) do
Map.has_key?(params, field) && params[field] not in [nil, "", []]
end
defp vars(%{vars: vars}, opts) do