feat: show only edit or list view in settings
This commit is contained in:
parent
38d106a69e
commit
4a6e7cf51a
2 changed files with 32 additions and 1 deletions
|
|
@ -178,6 +178,9 @@ defmodule MvWeb.CustomFieldLive.IndexComponent do
|
|||
|
||||
@impl true
|
||||
def update(assigns, socket) do
|
||||
# Track previous show_form state to detect when form is closed
|
||||
previous_show_form = Map.get(socket.assigns, :show_form, false)
|
||||
|
||||
# If show_form is explicitly provided in assigns, reset editing state
|
||||
socket =
|
||||
if Map.has_key?(assigns, :show_form) and assigns.show_form == false do
|
||||
|
|
@ -188,6 +191,13 @@ defmodule MvWeb.CustomFieldLive.IndexComponent do
|
|||
socket
|
||||
end
|
||||
|
||||
# Detect when form is closed (show_form changes from true to false)
|
||||
new_show_form = Map.get(assigns, :show_form, false)
|
||||
|
||||
if previous_show_form and not new_show_form do
|
||||
send(self(), {:editing_section_changed, nil})
|
||||
end
|
||||
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(assigns)
|
||||
|
|
@ -202,6 +212,11 @@ defmodule MvWeb.CustomFieldLive.IndexComponent do
|
|||
|
||||
@impl true
|
||||
def handle_event("new_custom_field", _params, socket) do
|
||||
# Only send event if form was not already open
|
||||
if not socket.assigns[:show_form] do
|
||||
send(self(), {:editing_section_changed, :custom_fields})
|
||||
end
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign(:show_form, true)
|
||||
|
|
@ -213,6 +228,11 @@ defmodule MvWeb.CustomFieldLive.IndexComponent do
|
|||
def handle_event("edit_custom_field", %{"id" => id}, socket) do
|
||||
custom_field = Ash.get!(Mv.Membership.CustomField, id)
|
||||
|
||||
# Only send event if form was not already open
|
||||
if not socket.assigns[:show_form] do
|
||||
send(self(), {:editing_section_changed, :custom_fields})
|
||||
end
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign(:show_form, true)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue