LiveFilter.Mountable (LiveFilter v0.1.0)
View SourceOptional LiveView integration for LiveFilter.
This module provides a use
macro that adds common filter-related functionality
to your LiveView modules. Everything is overridable and customizable.
Usage
defmodule MyAppWeb.ProductLive do
use MyAppWeb, :live_view
use LiveFilter.Mountable
def mount(params, session, socket) do
socket =
socket
|> mount_filters() # Adds default filter assigns
|> assign(:products, [])
{:ok, socket}
end
def handle_params(params, _uri, socket) do
socket = handle_filter_params(socket, params)
{:noreply, load_products(socket)}
end
end
Customization
You can customize every aspect:
use LiveFilter.Mountable,
mount_assigns: [:custom_filter_state],
param_handler: &MyApp.custom_param_handler/3,
url_updater: &MyApp.custom_url_updater/2
Or override the generated functions:
use LiveFilter.Mountable
# Override completely
def mount_filters(socket, opts) do
# Your custom implementation
end