Skip to content

Releases: woylie/flop_phoenix

0.24.1

03 Feb 04:00
f485dab
Compare
Choose a tag to compare

Fixed

  • Determine pagination type when there is only a limit.

0.24.0

01 Feb 09:40
d4ab8ce
Compare
Choose a tag to compare

Added

  • Add Flop.Phoenix.Pagination struct to hold information needed to render
    a pagination component.
  • Add Flop.Phoenix.Pagination.new/2 to build a Pagination struct from a
    Flop.Meta struct.
  • Add Flop.Phoenix.pagination_for/1 for building custom pagination components.
    Update the existing Flop.Phoenix.pagination/1 component to it.
  • Add Flop.Phoenix.page_link_range/3 for determining which page links to
    render in a pagination component.

Changed

  • Support cursor pagination in Flop.Phoenix.pagination/1.
  • Remove the page_links option from the pagination_opts. Set this option
    with the new page_links attribute instead.
  • Change the values of the page_links option from
    :all | :hide | {:ellipsis, pos_integer} to :all | :none | pos_integer.
  • Change default value for page_links option of the
    Flop.Phoenix.pagination/1 component from :all to 5.
  • Deprecate configuring the pagination and table components via the
    application environment. Define wrapper components that pass the opts
    attribute to the Flop.Phoenix components instead.
  • Remove dependency on PhoenixHTMLHelpers.
  • Require Phoenix LiveView ~> 1.0.0.
  • Require Elixir ~> 1.14.

Removed

  • Remove Flop.Phoenix.cursor_pagination/1. Use Flop.Phoenix.pagination/1
    instead.
  • Remove t:Flop.Phoenix.cursor_pagination_option/0.
  • Remove Flop.Phoenix.IncorrectPaginationTypeError.
  • Remove input_type/3 from the Phoenix.HTML.FormData protocol
    implementation for Flop.Meta. The function had been removed from the
    protocol in Phoenix.HTML 4.0.
  • Remove the previously deprecated event attribute from the
    Flop.Phoenix.pagination/1 and Flop.Phoenix.table/1 components. Use
    :on_paginate and :on_sort instead.
  • Remove the previously deprecated hide and show attributes from the
    :col and :action slots of the Flop.Phoenix.table/1 component. Use the
    :if attribute instead.

Fixed

  • Fix a warning about ranges in Elixir 1.18.

How to upgrade

Replace Flop.Phoenix.cursor_pagination/1 with Flop.Phoenix.pagination/1.

- <Flop.Phoenix.cursor_pagination meta={@meta} path={~p"/pets"} />
+ <Flop.Phoenix.pagination meta={@meta} path={~p"/pets"} />

Update the format of the page_links option for the pagination component.

- page_links: {:ellipsis, 7},
+ page_links: 7,

- page_links: :hide,
+ page_links: :none,

Remove page_links from your pagination_opts function and add it as an
attribute instead.

def pagination_opts do
  [
    ellipsis_attrs: [class: "ellipsis"],
    ellipsis_content: "‥",
    next_link_attrs: [class: "next"],
    next_link_content: next_icon(),
-     page_links: 7,
    pagination_link_aria_label: &"#{&1}ページ目へ",
    previous_link_attrs: [class: "prev"],
    previous_link_content: previous_icon()
  ]
end

<Flop.Phoenix.pagination
  meta={@meta}
  path={~p"/pets"}
+ page_links={7}
/>

Replace the :show and :hide attribute in the :col slot of the table
component with :if.

<:col
  :let={pet}
- show={@admin?}
+ :if={@admin?}
  label="Name"
  field={:name}
>
  <%= pet.name %>
</:col>

<:col
  :let={pet}
- hide={!@admin?}
+ :if={@admin?}
  label="Name"
  field={:name}
>
  <%= pet.name %>
</:col>

Replace the event attribute of the pagination table components with
on_paginate and on_sort.

<Flop.Phoenix.pagination
  meta={@meta}
- event="paginate"
+ on_paginate={JS.push("paginate")}
/>

<Flop.Phoenix.table
  items={@pets}
  meta={@meta}
- event="sort"
+ on_sort={JS.push("sort")}
>

Remove the configuration for the pagination component from config/config.exs
and define a wrapper component in your CoreComponents module instead. This
is optional, but will make future version updates easier.

For the pagination component:

# config/config.exs

config :flop_phoenix,
- pagination: [opts: {MyAppWeb.CoreComponents, :pagination_opts}],
  table: [opts: {MyAppWeb.CoreComponents, :table_opts}]

# MyAppWeb.CoreComponents

- def pagination_opts do
-   [
-     # ...
-   ]
- end

+ attr :meta, Flop.Meta, required: true
+ attr :path, :any, default: nil
+ attr :on_paginate, JS, default: nil
+ attr :target, :string, default: nil
+
+ def pagination(assigns) do
+   ~H\"""
+   <Flop.Phoenix.pagination
+     meta={@meta}
+     path={@path}
+     on_paginate={@on_paginate}
+     target={@target}
+     opts={[
+       # ...
+     ]}
+   />
+   \"""
+ end

0.23.1

18 Oct 00:18
b2af85d
Compare
Choose a tag to compare

Changed

  • Raise an error if a meta struct with the wrong pagination type is passed to the pagination or cursor_pagination component.

Fixed

  • Fix compilation error in Phoenix LiveView 1.0.0-rc.7.
  • Fix type of row_click attribute.

0.23.0

18 Aug 02:44
80dd8c0
Compare
Choose a tag to compare

Changed

  • Support and require live_view ~> 1.0.0-rc.0.
  • Allow to pass options directly in config file instead of referencing function.

Fixed

  • Fixed a deprecation warning in Elixir 1.17.

0.22.10

18 Aug 02:28
cefb455
Compare
Choose a tag to compare

Changed

  • Loosen version requirement for flop to support 0.26.

0.22.9

04 May 04:05
9323c81
Compare
Choose a tag to compare

Added

  • Added :pagination_list_item_attrs option to Flop.Phoenix.pagination/1.

0.22.8

23 Mar 11:51
d5ca29b
Compare
Choose a tag to compare

Added

  • Support :col_class attr on :col and :action slots in addition to :col_style.

Changed

  • Don't render empty style attributes on col elements in colgroup.

Fixed

  • The page range calculation in the Flop.Phoenix.pagination/1 was incorrect
    towards the last pages.

0.22.7

02 Mar 01:27
3f29749
Compare
Choose a tag to compare

Changed

  • Loosen version requirement for phoenix_html.

Fixed

  • Warning when wrapping table component and passing on :col slot as attribute.

0.22.6

14 Jan 01:24
12e49a2
Compare
Choose a tag to compare

Changed

  • Support Flop 0.25.0.
  • Update documentation examples for filter forms.

0.22.5

24 Dec 23:59
20c4fce
Compare
Choose a tag to compare

Changed

  • Requires phoenix_html ~> 4.0.