Upgrading to v0.9
View SourceBump your deps
Update Backpex to the latest version:
defp deps do
[
{:backpex, "~> 0.9.0"}
]
endRefactor calls to Backpex.HTML.Form.field_input/1
We've refactored the Backpex.HTML.Form.field_input/1 component and renamed it to Backpex.HTML.Form.input/1.
- It doesn't rely on a
field_optionsmap anymore (instead all options must be passed explicitly) - It now supports lists for all class attributes (
class,input_classandinput_wrapper_class) - It now accepts a
translate_error_funattribute
In addition, the input_class and input_wrapper_class attributes now completely override the defaults.
Make sure to update your calls to Backpex.HTML.Form.field_input/1. This may apply to your custom fields as well.
Before:
@impl Backpex.Field
def render_form(assigns) do
~H"""
<div>
<Layout.field_container>
<:label align={Backpex.Field.align_label(@field_options, assigns, :center)}>
<Layout.input_label text={@field_options[:label]} />
</:label>
<BackpexForm.field_input type="text" field={@form[@name]} field_options={@field_options} />
</Layout.field_container>
</div>
"""
endAfter:
@impl Backpex.Field
def render_form(assigns) do
~H"""
<div>
<Layout.field_container>
<:label align={Backpex.Field.align_label(@field_options, assigns, :center)}>
<Layout.input_label text={@field_options[:label]} />
</:label>
<BackpexForm.input
type="text"
field={@form[@name]}
translate_error_fun={Backpex.Field.translate_error_fun(@field_options, assigns)}
phx-debounce={Backpex.Field.debounce(@field_options, assigns)}
phx-throttle={Backpex.Field.throttle(@field_options, assigns)}
/>
</Layout.field_container>
</div>
"""
endBackpex.LiveResource function usage
Although the change is relatively small, if you are using public functions of the Backpex.LiveResource directly,
check the updated function definitions in the module documentation.
Refactor custom fields
In case you built your own custom fields: We changed the way how to use the Backpex.Field.
Before:
use BackpexWeb, :fieldAfter:
use Backpex.FieldIn case your field has field-specific configuration options, you need to provide those when using Backpex.Field:
@config_schema [
# see https://hexdocs.pm/nimble_options/NimbleOptions.html
# or any other core backpex field for examples...
]
use Backpex.Field, config_schema: @config_schemaRemoved string support on throttle field options
The fields that allow the throttle options previously supported a string value (e.g. "500").
Please change it to an integer value (e.g. 500).
Resource Action and Item Action init_change/1 is renamed
The term init_change was confusing because the result is being used as the base schema / item for the changeset function. Therefore we renamed the function to base_schema/1 for both Item Actions and Resource Actions.
Resource Action and Item Action handle functions behave differently
Both Item Action and Resource Action handle functions now have to return either {:ok, socket} or {:error, changeset}. A flash message is no longer added to the socket automatically.
Make sure to read the improved documentation for the handle functions to understand how you should use them now:
Translate new texts
The latest version of Backpex introduces the following texts
- "Save & Continue Editing"
Make sure you translate these texts in your translation files.