From b139d857914ab5f5528a683b4549fc1ed9755e21 Mon Sep 17 00:00:00 2001 From: carla Date: Thu, 8 Jan 2026 11:37:39 +0100 Subject: [PATCH] fix: add missing event handler for member field visibility updates --- lib/mv_web/live/global_settings_live.ex | 40 ++++++++----------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/lib/mv_web/live/global_settings_live.ex b/lib/mv_web/live/global_settings_live.ex index 2798412..3696880 100644 --- a/lib/mv_web/live/global_settings_live.ex +++ b/lib/mv_web/live/global_settings_live.ex @@ -141,33 +141,6 @@ 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 - @impl true def handle_info({:editing_section_changed, section}, socket) do {:noreply, assign(socket, :active_editing_section, section)} @@ -192,6 +165,19 @@ defmodule MvWeb.GlobalSettingsLive do |> put_flash(:info, gettext("Member field %{action} successfully", action: action))} end + @impl true + def handle_info({:member_field_visibility_updated}, socket) do + # Legacy event - reload settings and update component + {:ok, updated_settings} = Membership.get_settings() + + send_update(MvWeb.MemberFieldLive.IndexComponent, + id: "member-fields-component", + settings: updated_settings + ) + + {:noreply, assign(socket, :settings, updated_settings)} + end + defp assign_form(%{assigns: %{settings: settings}} = socket) do form = AshPhoenix.Form.for_update(