fix: use any overridden value, including nil or false (#476)

fixes #475
This commit is contained in:
Zach Daniel 2024-07-16 15:32:07 -04:00 committed by GitHub
parent ef856bf14e
commit 8a1fe30d7b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -63,19 +63,16 @@ defmodule AshAuthentication.Phoenix.Overrides.Overridable do
if Map.has_key?(component_overrides, selector) do
quote do
override =
unquote(overrides)
|> Enum.reduce_while(nil, fn module, _ ->
module.overrides()
|> Map.fetch({unquote(component), unquote(selector)})
# credo:disable-for-next-line Credo.Check.Refactor.Nesting
|> case do
{:ok, value} -> {:halt, value}
:error -> {:cont, nil}
end
end)
override || unquote(default)
unquote(overrides)
|> Enum.reduce_while(unquote(default), fn module, value ->
module.overrides()
|> Map.fetch({unquote(component), unquote(selector)})
# credo:disable-for-next-line Credo.Check.Refactor.Nesting
|> case do
{:ok, value} -> {:halt, value}
:error -> {:cont, value}
end
end)
end
else
IO.warn(