From 39851c6fa1ddba0df4279966ce8f7cf69490411e Mon Sep 17 00:00:00 2001 From: Chris Fulljames Date: Tue, 18 Feb 2025 18:27:15 -0500 Subject: [PATCH] Dynamically update navbar --- main.py | 7 ++++++- templates/base.html | 35 ++++++++++++++++++++++------------- templates/base.json | 1 + 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/main.py b/main.py index 37baa57..abd6748 100644 --- a/main.py +++ b/main.py @@ -936,7 +936,12 @@ def auto_redirect(url): @app.context_processor def inject_global_vars(): use_json = request.args.get("request-type", None) == "ajax" - return dict(gif_data=get_gif_data(), current_user_playlists=get_current_user_playlists(), use_json=use_json, dumps=json.dumps) + return dict( + gif_data=get_gif_data(), + current_user_playlists=get_current_user_playlists(), + use_json=use_json, + dumps=json.dumps, + ) ################################################################################ diff --git a/templates/base.html b/templates/base.html index 26390c1..0aa52b8 100644 --- a/templates/base.html +++ b/templates/base.html @@ -40,8 +40,18 @@ // Trigger event to signal new page has loaded var event = new Event("DOMContentLoaded"); document.dispatchEvent(event); - }); + // Refresh navbar in case logged-in status changed + updateNavbar(data.username); + }); + } + function updateNavbar(username) { + var loggedIn = username ? true : false; + document.querySelectorAll(".nav-logged-in").forEach((e) => {e.hidden = !loggedIn;}); + document.querySelectorAll(".nav-logged-out").forEach((e) => {e.hidden = loggedIn;}); + if (loggedIn) { + document.getElementById("logged-in-status").innerText = `Signed in as ${username}`; + } } @@ -107,24 +117,23 @@ {% if "username" in session %}