style: combines member and custom fields in settings

This commit is contained in:
carla 2025-12-16 17:16:29 +01:00
parent 5fa0b48acc
commit c88f805b6e
2 changed files with 171 additions and 155 deletions

View file

@ -63,16 +63,18 @@ defmodule MvWeb.GlobalSettingsLive do
</.form>
</.form_section>
<%!-- Memberdata Section --%>
<.live_component
module={MvWeb.MemberFieldLive.IndexComponent}
id="member-fields-component"
settings={@settings}
/>
<%!-- Custom Fields Section --%>
<.live_component
module={MvWeb.CustomFieldLive.IndexComponent}
id="custom-fields-component"
/>
<.form_section title={gettext("Memberdata")}>
<.live_component
module={MvWeb.MemberFieldLive.IndexComponent}
id="member-fields-component"
settings={@settings}
/>
<%!-- Custom Fields Section --%>
<.live_component
module={MvWeb.CustomFieldLive.IndexComponent}
id="custom-fields-component"
/>
</.form_section>
</Layouts.app>
"""
end
@ -158,6 +160,24 @@ defmodule MvWeb.GlobalSettingsLive do
{:noreply, put_flash(socket, :error, error_message)}
end
@impl true
def handle_info({:member_field_saved, _member_field, action}, socket) do
# Reload settings to get updated member_field_visibility
{:ok, updated_settings} = Membership.get_settings()
# Send update to member fields component to close form
send_update(MvWeb.MemberFieldLive.IndexComponent,
id: "member-fields-component",
show_form: false,
settings: updated_settings
)
{:noreply,
socket
|> assign(:settings, updated_settings)
|> put_flash(:info, gettext("Member field %{action} successfully", action: action))}
end
defp assign_form(%{assigns: %{settings: settings}} = socket) do
form =
AshPhoenix.Form.for_update(