docs: add @doc to public functions in MemberLive.Index
Document LiveView callbacks (mount, handle_event, handle_info, handle_params) with comprehensive descriptions of their purpose and supported operations.
This commit is contained in:
parent
1805916359
commit
6922086fa1
1 changed files with 28 additions and 5 deletions
|
|
@ -26,6 +26,12 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
"""
|
"""
|
||||||
use MvWeb, :live_view
|
use MvWeb, :live_view
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Initializes the LiveView state.
|
||||||
|
|
||||||
|
Sets up initial assigns for page title, search query, sort configuration,
|
||||||
|
and member selection. Actual data loading happens in `handle_params/3`.
|
||||||
|
"""
|
||||||
@impl true
|
@impl true
|
||||||
def mount(_params, _session, socket) do
|
def mount(_params, _session, socket) do
|
||||||
socket =
|
socket =
|
||||||
|
|
@ -44,7 +50,14 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
# Handle Events
|
# Handle Events
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
# Delete a member
|
@doc """
|
||||||
|
Handles member-related UI events.
|
||||||
|
|
||||||
|
## Supported events:
|
||||||
|
- `"delete"` - Removes a member from the database
|
||||||
|
- `"select_member"` - Toggles individual member selection
|
||||||
|
- `"select_all"` - Toggles selection of all visible members
|
||||||
|
"""
|
||||||
@impl true
|
@impl true
|
||||||
def handle_event("delete", %{"id" => id}, socket) do
|
def handle_event("delete", %{"id" => id}, socket) do
|
||||||
member = Ash.get!(Mv.Membership.Member, id)
|
member = Ash.get!(Mv.Membership.Member, id)
|
||||||
|
|
@ -54,7 +67,6 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
{:noreply, assign(socket, :members, updated_members)}
|
{:noreply, assign(socket, :members, updated_members)}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Selects one member in the list of members
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_event("select_member", %{"id" => id}, socket) do
|
def handle_event("select_member", %{"id" => id}, socket) do
|
||||||
selected =
|
selected =
|
||||||
|
|
@ -67,7 +79,6 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
{:noreply, assign(socket, :selected_members, selected)}
|
{:noreply, assign(socket, :selected_members, selected)}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Selects all members in the list of members
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_event("select_all", _params, socket) do
|
def handle_event("select_all", _params, socket) do
|
||||||
members = socket.assigns.members
|
members = socket.assigns.members
|
||||||
|
|
@ -88,7 +99,13 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
# Handle Infos from Child Components
|
# Handle Infos from Child Components
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
|
||||||
# Sorts the list of members according to a field, when you click on the column header
|
@doc """
|
||||||
|
Handles messages from child components.
|
||||||
|
|
||||||
|
## Supported messages:
|
||||||
|
- `{:sort, field}` - Sort event from SortHeaderComponent. Updates sort field/order and syncs URL
|
||||||
|
- `{:search_changed, query}` - Search event from SearchBarComponent. Filters members and syncs URL
|
||||||
|
"""
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info({:sort, field_str}, socket) do
|
def handle_info({:sort, field_str}, socket) do
|
||||||
field = String.to_existing_atom(field_str)
|
field = String.to_existing_atom(field_str)
|
||||||
|
|
@ -138,7 +155,6 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
)}
|
)}
|
||||||
end
|
end
|
||||||
|
|
||||||
# Function to handle search
|
|
||||||
@impl true
|
@impl true
|
||||||
def handle_info({:search_changed, q}, socket) do
|
def handle_info({:search_changed, q}, socket) do
|
||||||
socket = load_members(socket, q)
|
socket = load_members(socket, q)
|
||||||
|
|
@ -167,6 +183,13 @@ defmodule MvWeb.MemberLive.Index do
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# Handle Params from the URL
|
# Handle Params from the URL
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
@doc """
|
||||||
|
Handles URL parameter changes.
|
||||||
|
|
||||||
|
Parses query parameters for search query, sort field, and sort order,
|
||||||
|
then loads members accordingly. This enables bookmarkable URLs and
|
||||||
|
browser back/forward navigation.
|
||||||
|
"""
|
||||||
@impl true
|
@impl true
|
||||||
def handle_params(params, _url, socket) do
|
def handle_params(params, _url, socket) do
|
||||||
socket =
|
socket =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue