Packages

A powerful LiveView component for creating dynamic, interactive tables with features like sorting, filtering, pagination, and export capabilities.

Current section

Files

Jump to
live_table lib live_table paginate.ex
Raw

lib/live_table/paginate.ex

defmodule LiveTable.Paginate do
@moduledoc false
import Ecto.Query
def maybe_paginate(query, _, false), do: query
def maybe_paginate(query, paginate_params, true) do
query
|> paginate(paginate_params)
end
def paginate(query, %{"per_page" => per_page, "page" => page}) do
page = page |> String.to_integer()
per_page = per_page |> String.to_integer()
offset = max((page - 1) * per_page, 0)
query
|> limit(^per_page)
|> offset(^offset)
end
end