From a1c8cdea96890c842aa362442a0141276a7e2c9a Mon Sep 17 00:00:00 2001
From: Jaseem Jas <89440144+jaseemjaskp@users.noreply.github.com>
Date: Fri, 26 Jun 2026 18:13:13 +0530
Subject: [PATCH 01/23] UN-3185: Fix squished route-loading spinner in the
content area (#2118)
GenericLoader's .center uses width/height: inherit, which collapsed to a
narrow column when used as LazyOutlet's content-area Suspense fallback (the
loader text wrapped one word per line beside the sidebar). Wrap the fallback in
a full-width, flex-centered .lazyOutletFallback box and pin .center to width:100%
so it renders centered at its natural size. The top-level loader in Router.jsx
is unaffected (it doesn't use this wrapper).
---
.../components/error/LazyOutlet/LazyOutlet.css | 17 +++++++++++++++++
.../components/error/LazyOutlet/LazyOutlet.jsx | 11 ++++++++++-
2 files changed, 27 insertions(+), 1 deletion(-)
create mode 100644 frontend/src/components/error/LazyOutlet/LazyOutlet.css
diff --git a/frontend/src/components/error/LazyOutlet/LazyOutlet.css b/frontend/src/components/error/LazyOutlet/LazyOutlet.css
new file mode 100644
index 0000000000..45e908db26
--- /dev/null
+++ b/frontend/src/components/error/LazyOutlet/LazyOutlet.css
@@ -0,0 +1,17 @@
+/* Center the route-loading fallback in the content area. */
+.lazyOutletFallback {
+ display: flex;
+ width: 100%;
+ min-height: 60vh;
+ align-items: center;
+ justify-content: center;
+}
+
+/* GenericLoader's .center uses `width/height: inherit`, which collapses to a
+ narrow column inside the flex content area (the loader text ends up wrapping
+ one word per line next to the sidebar). Pin it to the full fallback width so
+ it renders centered at its natural size instead. */
+.lazyOutletFallback > .center {
+ width: 100%;
+ height: auto;
+}
diff --git a/frontend/src/components/error/LazyOutlet/LazyOutlet.jsx b/frontend/src/components/error/LazyOutlet/LazyOutlet.jsx
index ce321c9c60..fb43d5a0eb 100644
--- a/frontend/src/components/error/LazyOutlet/LazyOutlet.jsx
+++ b/frontend/src/components/error/LazyOutlet/LazyOutlet.jsx
@@ -4,6 +4,7 @@ import { Outlet, useLocation } from "react-router-dom";
import { GenericLoader } from "../../generic-loader/GenericLoader.jsx";
import { ErrorBoundary } from "../../widgets/error-boundary/ErrorBoundary.jsx";
+import "./LazyOutlet.css";
// A failed dynamic import — almost always a stale hashed chunk after a
// redeploy (the client's index.html references a filename the CDN no longer
@@ -74,7 +75,15 @@ export function LazyOutlet() {
onError={handleRouteError}
fallbackComponent={