def handle_event(
"set_text",
%{"form_path" => form_path, "field_name" => field_name, "text" => text},
socket
) do
text = String.split(text, ".") |> Enum.at(0)
# from https://elixirforum.com/t/update-fields-of-a-nested-ashphoenix-form-on-change-of-a-different-field/60954/2?u=diogo-felix-martins
# form =
# AshPhoenix.Form.update_form(socket.assigns.form, form_path, fn nested_form ->
# params = Map.merge(nested_form.params, Map.put(nested_form.params, field_name, text))
# AshPhoenix.Form.validate(nested_form, params)
# end)
form =
AshPhoenix.Form.update_form(socket.assigns.form, form_path, fn nested_form ->
AshPhoenix.Form.update_params(nested_form, fn new_nested_form ->
Map.put(new_nested_form, field_name, text)
end)
end)
# need to call validate manually?
form_params = AshPhoenix.Form.params(form)
form = AshPhoenix.Form.validate(form, form_params)
{:noreply, assign(socket, :form, form)}
end
def handle_event(
"set_text",
%{"form_path" => form_path, "field_name" => field_name, "text" => text},
socket
) do
text = String.split(text, ".") |> Enum.at(0)
# from https://elixirforum.com/t/update-fields-of-a-nested-ashphoenix-form-on-change-of-a-different-field/60954/2?u=diogo-felix-martins
# form =
# AshPhoenix.Form.update_form(socket.assigns.form, form_path, fn nested_form ->
# params = Map.merge(nested_form.params, Map.put(nested_form.params, field_name, text))
# AshPhoenix.Form.validate(nested_form, params)
# end)
form =
AshPhoenix.Form.update_form(socket.assigns.form, form_path, fn nested_form ->
AshPhoenix.Form.update_params(nested_form, fn new_nested_form ->
Map.put(new_nested_form, field_name, text)
end)
end)
# need to call validate manually?
form_params = AshPhoenix.Form.params(form)
form = AshPhoenix.Form.validate(form, form_params)
{:noreply, assign(socket, :form, form)}
end