feat: adds memberdata component for settings

This commit is contained in:
carla 2025-12-15 09:58:19 +01:00
parent 756d99dcc8
commit 3d81461fbe
2 changed files with 239 additions and 0 deletions

View file

@ -62,6 +62,12 @@ defmodule MvWeb.GlobalSettingsLive do
</.button>
</.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}
@ -125,6 +131,33 @@ defmodule MvWeb.GlobalSettingsLive do
{:noreply, put_flash(socket, :error, gettext("Slug does not match. Deletion cancelled."))}
end
@impl true
def handle_info({:member_field_visibility_updated}, socket) do
# Reload settings to get updated member_field_visibility
{:ok, updated_settings} = Membership.get_settings()
{:noreply,
socket
|> assign(:settings, updated_settings)
|> put_flash(:info, gettext("Member field visibility updated successfully"))}
end
@impl true
def handle_info({:member_field_visibility_error, error}, socket) do
error_message =
case error do
%Ash.Error.Invalid{} = invalid_error ->
gettext("Failed to update member field visibility: %{error}",
error: Ash.ErrorKind.message(invalid_error)
)
error ->
gettext("Failed to update member field visibility: %{error}", error: inspect(error))
end
{:noreply, put_flash(socket, :error, error_message)}
end
defp assign_form(%{assigns: %{settings: settings}} = socket) do
form =
AshPhoenix.Form.for_update(