Current section

192 Versions

Jump to

Compare versions

6 files changed
+49 additions
-45 deletions
  @@ -5,6 +5,17 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline
5 5
6 6 <!-- changelog -->
7 7
8 + ## [v1.2.25](https://github.com/ash-project/ash_phoenix/compare/v1.2.24...v1.2.25) (2024-01-02)
9 +
10 +
11 +
12 +
13 + ### Bug Fixes:
14 +
15 + * remove system added error vars to ensure deduplication works properly
16 +
17 + * ensure next page is detected for offset pages w/ more?: true
18 +
8 19 ## [v1.2.24](https://github.com/ash-project/ash_phoenix/compare/v1.2.23...v1.2.24) (2023-12-12)
  @@ -2,7 +2,7 @@
2 2
3 3 The AshPhoenix plugin adds lots of helpers for working with Phoenix Liveview (and regular views).
4 4
5 - `{:ash_phoenix, "~> 1.2.24"}`
5 + `{:ash_phoenix, "~> 1.2.25"}`
6 6
7 7 Check out the [getting started with phoenix guide](/documentation/tutorials/getting-started-with-ash-and-phoenix.md) for setup.
  @@ -1,52 +1,52 @@
1 1 {<<"links">>,
2 2 [{<<"GitHub">>,<<"https://github.com/ash-project/ash_phoenix">>}]}.
3 3 {<<"name">>,<<"ash_phoenix">>}.
4 - {<<"version">>,<<"1.2.24">>}.
4 + {<<"version">>,<<"1.2.25">>}.
5 5 {<<"description">>,<<"Utilities for integrating Ash with Phoenix">>}.
6 6 {<<"elixir">>,<<"~> 1.11">>}.
7 7 {<<"app">>,<<"ash_phoenix">>}.
8 8 {<<"licenses">>,[<<"MIT">>]}.
9 9 {<<"files">>,
10 - [<<"lib">>,<<"lib/ash_phoenix.ex">>,<<"lib/ash_phoenix">>,
11 - <<"lib/ash_phoenix/gen">>,<<"lib/ash_phoenix/gen/live.ex">>,
12 - <<"lib/ash_phoenix/gen/gen.ex">>,<<"lib/ash_phoenix/live_view.ex">>,
13 - <<"lib/ash_phoenix/filter_form">>,
14 - <<"lib/ash_phoenix/filter_form/filter_form.ex">>,
15 - <<"lib/ash_phoenix/filter_form/predicate.ex">>,
16 - <<"lib/ash_phoenix/filter_form/arguments.ex">>,
17 - <<"lib/ash_phoenix/form_data">>,<<"lib/ash_phoenix/form_data/error.ex">>,
18 - <<"lib/ash_phoenix/form_data/helpers.ex">>,<<"lib/ash_phoenix/plug">>,
19 - <<"lib/ash_phoenix/plug/exception.ex">>,
20 - <<"lib/ash_phoenix/plug/subdomain_plug.ex">>,<<"lib/ash_phoenix/types">>,
21 - <<"lib/ash_phoenix/types/ci_string.ex">>,
22 - <<"lib/ash_phoenix/types/decimal.ex">>,
23 - <<"lib/ash_phoenix/types/not_loaded.ex">>,<<"lib/ash_phoenix/form">>,
24 - <<"lib/ash_phoenix/form/no_resource_configured.ex">>,
25 - <<"lib/ash_phoenix/form/auto.ex">>,<<"lib/ash_phoenix/form/form.ex">>,
26 - <<"lib/ash_phoenix/form/wrapped_value.ex">>,
27 - <<"lib/ash_phoenix/form/no_data_loaded.ex">>,
10 + [<<"lib">>,<<"lib/ash_phoenix.ex">>,<<"lib/mix">>,<<"lib/mix/tasks">>,
11 + <<"lib/mix/tasks/ash_phoenix.gen.live.ex">>,
12 + <<"lib/mix/tasks/ash_phoenix.gen.html.ex">>,<<"lib/ash_phoenix">>,
13 + <<"lib/ash_phoenix/form">>,<<"lib/ash_phoenix/form/no_data_loaded.ex">>,
28 14 <<"lib/ash_phoenix/form/no_form_configured.ex">>,
29 15 <<"lib/ash_phoenix/form/no_action_configured.ex">>,
30 - <<"lib/ash_phoenix/form/invalid_path.ex">>,<<"lib/mix">>,
31 - <<"lib/mix/tasks">>,<<"lib/mix/tasks/ash_phoenix.gen.live.ex">>,
32 - <<"lib/mix/tasks/ash_phoenix.gen.html.ex">>,<<".formatter.exs">>,
16 + <<"lib/ash_phoenix/form/auto.ex">>,
17 + <<"lib/ash_phoenix/form/no_resource_configured.ex">>,
18 + <<"lib/ash_phoenix/form/invalid_path.ex">>,
19 + <<"lib/ash_phoenix/form/wrapped_value.ex">>,
20 + <<"lib/ash_phoenix/form/form.ex">>,<<"lib/ash_phoenix/types">>,
21 + <<"lib/ash_phoenix/types/decimal.ex">>,
22 + <<"lib/ash_phoenix/types/not_loaded.ex">>,
23 + <<"lib/ash_phoenix/types/ci_string.ex">>,<<"lib/ash_phoenix/live_view.ex">>,
24 + <<"lib/ash_phoenix/gen">>,<<"lib/ash_phoenix/gen/gen.ex">>,
25 + <<"lib/ash_phoenix/gen/live.ex">>,<<"lib/ash_phoenix/form_data">>,
26 + <<"lib/ash_phoenix/form_data/error.ex">>,
27 + <<"lib/ash_phoenix/form_data/helpers.ex">>,<<"lib/ash_phoenix/plug">>,
28 + <<"lib/ash_phoenix/plug/subdomain_plug.ex">>,
29 + <<"lib/ash_phoenix/plug/exception.ex">>,<<"lib/ash_phoenix/filter_form">>,
30 + <<"lib/ash_phoenix/filter_form/arguments.ex">>,
31 + <<"lib/ash_phoenix/filter_form/filter_form.ex">>,
32 + <<"lib/ash_phoenix/filter_form/predicate.ex">>,<<".formatter.exs">>,
33 33 <<"mix.exs">>,<<"README.md">>,<<"LICENSE">>,<<"CHANGELOG.md">>,
34 34 <<"documentation">>,<<"documentation/tutorials">>,
35 35 <<"documentation/tutorials/getting-started-with-ash-and-phoenix.md">>,
36 36 <<"documentation/topics">>,
37 37 <<"documentation/topics/working-with-phoenix.md">>,<<"priv">>,
38 38 <<"priv/templates">>,<<"priv/templates/ash_phoenix.gen.live">>,
39 - <<"priv/templates/ash_phoenix.gen.live/form_component.ex.eex">>,
40 - <<"priv/templates/ash_phoenix.gen.live/index.ex.eex">>,
41 39 <<"priv/templates/ash_phoenix.gen.live/show.ex.eex">>,
40 + <<"priv/templates/ash_phoenix.gen.live/index.ex.eex">>,
41 + <<"priv/templates/ash_phoenix.gen.live/form_component.ex.eex">>,
42 42 <<"priv/templates/ash_phoenix.gen.html">>,
43 - <<"priv/templates/ash_phoenix.gen.html/resource_form.html.heex">>,
44 43 <<"priv/templates/ash_phoenix.gen.html/html.ex">>,
45 - <<"priv/templates/ash_phoenix.gen.html/index.html.heex">>,
46 - <<"priv/templates/ash_phoenix.gen.html/show.html.heex">>,
44 + <<"priv/templates/ash_phoenix.gen.html/new.html.heex">>,
47 45 <<"priv/templates/ash_phoenix.gen.html/edit.html.heex">>,
46 + <<"priv/templates/ash_phoenix.gen.html/index.html.heex">>,
48 47 <<"priv/templates/ash_phoenix.gen.html/controller.ex">>,
49 - <<"priv/templates/ash_phoenix.gen.html/new.html.heex">>]}.
48 + <<"priv/templates/ash_phoenix.gen.html/show.html.heex">>,
49 + <<"priv/templates/ash_phoenix.gen.html/resource_form.html.heex">>]}.
50 50 {<<"requirements">>,
51 51 [[{<<"name">>,<<"ash">>},
52 52 {<<"app">>,<<"ash">>},
  @@ -61,7 +61,7 @@
61 61 [{<<"name">>,<<"phoenix_html">>},
62 62 {<<"app">>,<<"phoenix_html">>},
63 63 {<<"optional">>,false},
64 - {<<"requirement">>,<<"~> 2.14 or ~> 3.0">>},
64 + {<<"requirement">>,<<"~> 2.14 or ~> 3.0 or ~> 4.0">>},
65 65 {<<"repository">>,<<"hexpm">>}],
66 66 [{<<"name">>,<<"phoenix_live_view">>},
67 67 {<<"app">>,<<"phoenix_live_view">>},
  @@ -187,6 +187,8 @@ defmodule AshPhoenix.FormData.Helpers do
187 187 []
188 188 end
189 189 end)
190 + # Drop known system added vars
191 + |> Keyword.drop([:path, :index, :field, :message])
190 192 end
191 193
192 194 def transform_error(form, error) do
  @@ -299,6 +299,10 @@ defmodule AshPhoenix.LiveView do
299 299
300 300 def page_link_params(%Ash.Page.Offset{more?: false}, "next"), do: :invalid
301 301
302 + def page_link_params(%Ash.Page.Offset{more?: true} = offset, "next") do
303 + [limit: offset.limit, offset: (offset.offset || 0) + offset.limit]
304 + end
305 +
302 306 def page_link_params(%Ash.Page.Keyset{more?: false, after: nil, before: before}, "prev")
303 307 when not is_nil(before) do
304 308 :invalid
  @@ -309,19 +313,6 @@ defmodule AshPhoenix.LiveView do
309 313 :invalid
310 314 end
311 315
312 - def page_link_params(%Ash.Page.Offset{} = offset, "next") do
313 - cond do
314 - offset.count && offset.offset + offset.limit >= offset.count ->
315 - :invalid
316 -
317 - Enum.count(offset.results) < offset.limit ->
318 - :invalid
319 -
320 - true ->
321 - [limit: offset.limit, offset: (offset.offset || 0) + offset.limit]
322 - end
323 - end
324 -
325 316 def page_link_params(%Ash.Page.Offset{offset: 0}, "prev") do
326 317 :invalid
327 318 end
Loading more files…