Browse Source

feat: add redirect debug badge and session storage monitoring in RootLayout

master
sina_sajjadi 2 months ago
parent
commit
a5b07f8b6a
  1. 43
      src/app/layout.tsx

43
src/app/layout.tsx

@ -143,11 +143,54 @@ export default function RootLayout({
`,
}}
/>
<script
dangerouslySetInnerHTML={{
__html: `
if (typeof window !== 'undefined') {
var REDIRECT_SESSION_KEY = 'redirect';
function renderRedirectDebug() {
var badge = document.getElementById('redirect-debug-badge');
if (!badge) {
return;
}
var redirectValue = window.sessionStorage.getItem(REDIRECT_SESSION_KEY);
badge.textContent =
redirectValue === null
? 'redirect: missing'
: 'redirect: ' + redirectValue;
}
var originalSetItem = window.sessionStorage.setItem.bind(window.sessionStorage);
var originalRemoveItem = window.sessionStorage.removeItem.bind(window.sessionStorage);
window.sessionStorage.setItem = function(key, value) {
originalSetItem(key, value);
renderRedirectDebug();
};
window.sessionStorage.removeItem = function(key) {
originalRemoveItem(key);
renderRedirectDebug();
};
window.addEventListener('load', renderRedirectDebug);
window.addEventListener('pageshow', renderRedirectDebug);
window.setTimeout(renderRedirectDebug, 0);
}
`,
}}
/>
</head>
<body className={`${faminela.variable} ${amiri.variable}`}>
<Providers>
<div className="app-shell">{children}</div>
</Providers>
<div
id="redirect-debug-badge"
className="fixed bottom-3 right-3 z-[9999] rounded bg-black/75 px-2 py-1 text-xs text-white"
/>
{process.env.NODE_ENV === "development" ? (
<DevClickToComponent />
) : null}

Loading…
Cancel
Save