From b3fb7e9fd83501626d326b8d2dbb58f34fc8eea7 Mon Sep 17 00:00:00 2001 From: yaro Date: Thu, 3 Jul 2025 09:39:27 -0500 Subject: [PATCH] revert e8483c859bf63bd3bbd0a827b16cc013ea0ed6b1 revert revert 6a0dd75f104dc09c2819993accd2470ee57db388 revert Enhance debugging and logging in settings and toast rendering; add JSON parsing output and improve toast container handling --- routes.py | 3 +++ static/js/widget.js | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/routes.py b/routes.py index 8606406..df2c70a 100644 --- a/routes.py +++ b/routes.py @@ -442,6 +442,9 @@ def settings(): try: state = json.loads(form['formState']) + import pprint + print("🧠 Parsed state:") + pprint.pprint(state, indent=2, width=120) except Exception: flash("Invalid form state submitted. JSON decode failed.", "danger") traceback.print_exc() diff --git a/static/js/widget.js b/static/js/widget.js index d44a51d..ce27f10 100644 --- a/static/js/widget.js +++ b/static/js/widget.js @@ -1,15 +1,26 @@ -function renderToast({ message, type = 'info', timeout = 3000 }) { +const ToastConfig = { + containerId: 'toast-container', + positionClasses: 'toast-container position-fixed bottom-0 end-0 p-3', + defaultType: 'info', + defaultTimeout: 3000 +}; + +function updateToastConfig(overrides = {}) { + Object.assign(ToastConfig, overrides); +} + +function renderToast({ message, type = ToastConfig.defaultType, timeout = ToastConfig.defaultTimeout }) { if (!message) { console.warn('renderToast was called without a message.'); return; } // Auto-create the toast container if it doesn't exist - let container = document.getElementById('toast-container'); + let container = document.getElementById(ToastConfig.containerId); if (!container) { container = document.createElement('div'); - container.id = 'toast-container'; - container.className = 'toast-container position-fixed bottom-0 end-0 p-3'; + container.id = ToastConfig.containerId; + container.className = ToastConfig.positionClasses; document.body.appendChild(container); }