From ea7d82a489d6044e525f3b375ce3e9b37bd0a411 Mon Sep 17 00:00:00 2001 From: Graham McIntie Date: Sat, 14 Feb 2026 13:48:22 -0600 Subject: [PATCH] fix: make Configure button toggle - clicking again collapses the form --- lib/towerops_web/live/org/settings_live.ex | 42 +++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/lib/towerops_web/live/org/settings_live.ex b/lib/towerops_web/live/org/settings_live.ex index f23b4625..44538891 100644 --- a/lib/towerops_web/live/org/settings_live.ex +++ b/lib/towerops_web/live/org/settings_live.ex @@ -255,26 +255,34 @@ defmodule ToweropsWeb.Org.SettingsLive do @impl true def handle_event("configure", %{"provider" => provider}, socket) do - integration = Map.get(socket.assigns.integrations, provider) + if socket.assigns.configuring == provider do + {:noreply, + socket + |> assign(:configuring, nil) + |> assign(:integration_form, nil) + |> assign(:test_result, nil)} + else + integration = Map.get(socket.assigns.integrations, provider) - form = - case integration do - nil -> - %Integration{} - |> Integrations.change_integration(%{provider: provider}) - |> to_form() + form = + case integration do + nil -> + %Integration{} + |> Integrations.change_integration(%{provider: provider}) + |> to_form() - existing -> - existing - |> Integrations.change_integration(%{}) - |> to_form() - end + existing -> + existing + |> Integrations.change_integration(%{}) + |> to_form() + end - {:noreply, - socket - |> assign(:configuring, provider) - |> assign(:integration_form, form) - |> assign(:test_result, nil)} + {:noreply, + socket + |> assign(:configuring, provider) + |> assign(:integration_form, form) + |> assign(:test_result, nil)} + end end @impl true