mirror of
https://github.com/ash-project/ash_phoenix.git
synced 2024-09-20 07:12:49 +12:00
improvement: improve pagination helpers
This commit is contained in:
parent
ed5c0b08ff
commit
0e4fa16ae5
1 changed files with 14 additions and 2 deletions
|
@ -255,6 +255,14 @@ defmodule AshPhoenix.LiveView do
|
||||||
|
|
||||||
defp set_count(params, _), do: params
|
defp set_count(params, _), do: params
|
||||||
|
|
||||||
|
def prev_page?(page) do
|
||||||
|
page_link_params(page, "prev") != :invalid
|
||||||
|
end
|
||||||
|
|
||||||
|
def next_page?(page) do
|
||||||
|
page_link_params(page, "next") != :invalid
|
||||||
|
end
|
||||||
|
|
||||||
def page_link_params(_, "first") do
|
def page_link_params(_, "first") do
|
||||||
[]
|
[]
|
||||||
end
|
end
|
||||||
|
@ -307,11 +315,11 @@ defmodule AshPhoenix.LiveView do
|
||||||
end
|
end
|
||||||
|
|
||||||
def page_link_params(%Ash.Page.Keyset{results: [first | _]} = keyset, "prev") do
|
def page_link_params(%Ash.Page.Keyset{results: [first | _]} = keyset, "prev") do
|
||||||
[before: first.metadata.keyset, limit: keyset.limit]
|
[before: first.__metadata__.keyset, limit: keyset.limit]
|
||||||
end
|
end
|
||||||
|
|
||||||
def page_link_params(%Ash.Page.Keyset{results: results} = keyset, "next") do
|
def page_link_params(%Ash.Page.Keyset{results: results} = keyset, "next") do
|
||||||
[after: List.last(results).metadata.keyset, limit: keyset.limit]
|
[after: List.last(results).__metadata__.keyset, limit: keyset.limit]
|
||||||
end
|
end
|
||||||
|
|
||||||
def page_link_params(%Ash.Page.Offset{count: count, limit: limit} = offset, target)
|
def page_link_params(%Ash.Page.Offset{count: count, limit: limit} = offset, target)
|
||||||
|
@ -323,6 +331,10 @@ defmodule AshPhoenix.LiveView do
|
||||||
[offset: (target - 1) * limit, limit: limit]
|
[offset: (target - 1) * limit, limit: limit]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def page_link_params({:ok, data}, target) do
|
||||||
|
page_link_params(data, target)
|
||||||
|
end
|
||||||
|
|
||||||
def page_link_params(_page, _target) do
|
def page_link_params(_page, _target) do
|
||||||
:invalid
|
:invalid
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue