From 75ef15a82cbf28d508c1f58e1991867226731e1a Mon Sep 17 00:00:00 2001 From: Alexandre de Souza Date: Tue, 6 May 2025 16:38:23 -0300 Subject: [PATCH] Add Logout button to Apps page (#2994) --- lib/livebook_web/live/apps_live.ex | 17 ++++++++++++++--- lib/livebook_web/live/hooks/app_auth_hook.ex | 9 ++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/lib/livebook_web/live/apps_live.ex b/lib/livebook_web/live/apps_live.ex index f79d09308..fc865bfda 100644 --- a/lib/livebook_web/live/apps_live.ex +++ b/lib/livebook_web/live/apps_live.ex @@ -20,9 +20,20 @@ defmodule LivebookWeb.AppsLive do
- <.link navigate={~p"/"}> - logo livebook - + <.menu id="apps-menu" position="bottom-right" md_position="bottom-left"> + <:toggle> + + + <.menu_item :if={Livebook.Config.logout_enabled?() and @current_user.email != nil}> + + +
<.link navigate={~p"/apps-dashboard"} class="flex items-center text-blue-600"> diff --git a/lib/livebook_web/live/hooks/app_auth_hook.ex b/lib/livebook_web/live/hooks/app_auth_hook.ex index 75fbce188..b825f17cd 100644 --- a/lib/livebook_web/live/hooks/app_auth_hook.ex +++ b/lib/livebook_web/live/hooks/app_auth_hook.ex @@ -78,7 +78,14 @@ defmodule LivebookWeb.AppAuthHook do # Skip auth for non-app-specific routes def on_mount(:default, %{}, _session, socket) do - {:cont, socket} + if connected?(socket) do + LivebookWeb.SessionHelpers.subscribe_to_logout() + end + + {:cont, + socket + |> attach_hook(:logout, :handle_info, &handle_info/2) + |> attach_hook(:logout, :handle_event, &handle_event/3)} end defp livebook_authorized?(session, socket) do