fix: ensure table columsn are loaded, bypassing (as yet) unknown bug

This commit is contained in:
Zach Daniel 2024-06-28 12:02:00 -04:00
parent 110a54c4d9
commit d58198b5e3

View file

@ -153,8 +153,7 @@ defmodule AshAdmin.Components.Resource.DataTable do
domain: socket.assigns[:domain],
actor: socket.assigns[:actor],
tenant: socket.assigns[:tenant],
authorize?: socket.assigns[:authorizing],
prepare_source: &load_fields/1
authorize?: socket.assigns[:authorizing]
)
{query, run_now?} =
@ -205,8 +204,14 @@ defmodule AshAdmin.Components.Resource.DataTable do
end
case AshPhoenix.Form.submit(socket.assigns.query, action_opts: action_opts) do
{:ok, data} -> assign(socket, :data, {:ok, data})
{:error, query} -> assign(socket, data: {:error, all_errors(query)}, query: query)
{:ok, data} ->
data =
Ash.load!(data, AshAdmin.Resource.table_columns(query.resource))
assign(socket, :data, {:ok, data})
{:error, query} ->
assign(socket, data: {:error, all_errors(query)}, query: query)
end
end
else
@ -222,7 +227,7 @@ defmodule AshAdmin.Components.Resource.DataTable do
defp load_fields(query) do
query
|> Ash.Query.select([])
|> Ash.Query.load(AshAdmin.Resource.table_columns(query.resource))
|> Ash.Query.load()
end
defp all_errors(form) do