From f34ceb78f17dbdc531e7be90b7039231cd919c46 Mon Sep 17 00:00:00 2001 From: Adrian Gruntkowski Date: Fri, 7 Jun 2024 13:49:44 +0200 Subject: [PATCH] Implement a criminal hack to track removal of modal's child live components --- lib/plausible_web/live/components/modal.ex | 50 +++++++++++++++++++--- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/lib/plausible_web/live/components/modal.ex b/lib/plausible_web/live/components/modal.ex index 127e88ced..683ff9649 100644 --- a/lib/plausible_web/live/components/modal.ex +++ b/lib/plausible_web/live/components/modal.ex @@ -104,13 +104,27 @@ defmodule PlausibleWeb.Live.Components.Modal do end @impl true + def update(%{live_cids: live_cids}, socket) do + socket = + if live_cids == [] do + assign(socket, load_content?: true) + else + track_live_cids(socket) + socket + end + + {:ok, put_private(socket, :live_cids, live_cids)} + end + def update(assigns, socket) do socket = - assign(socket, + socket + |> assign( id: assigns.id, inner_block: assigns.inner_block, load_content?: true ) + |> put_private(:live_cids, []) {:ok, socket} end @@ -127,14 +141,14 @@ defmodule PlausibleWeb.Live.Components.Modal do assigns = assign(assigns, - class: ["modal-dialog relative opacity-0 translate-y-4 sm:translate-y-0" | class], + class: ["modal-dialog relative opacity-0 translate-y-4 sm:translate-y-0 z-[51]" | class], dialog_id: assigns.id <> "-dialog" ) ~H"""