diff --git a/apps/web/src/app/auth/signin/page.tsx b/apps/web/src/app/auth/signin/page.tsx index 9a3d991..942d7f5 100644 --- a/apps/web/src/app/auth/signin/page.tsx +++ b/apps/web/src/app/auth/signin/page.tsx @@ -59,10 +59,15 @@ export default function SignInPage() { setTotp(""); } } else { - // Invalidate the Next.js Router Cache so (app)/layout.tsx re-renders - // with the fresh session, then navigate to the dashboard. - router.refresh(); - router.push("/dashboard"); + // Full-page navigation instead of router.push to guarantee a fresh + // server request with the new session cookie. Soft navigation keeps + // the React tree (incl. QueryClient with cached pre-auth errors and + // the Next.js Router Cache) alive, which caused the recurring bug + // where the dashboard rendered with empty widgets until the user + // pressed Ctrl+R. Skipping setLoading(false) prevents a visual flash + // while the navigation happens. + window.location.assign("/dashboard"); + return; } setLoading(false); @@ -86,21 +91,28 @@ export default function SignInPage() { Resource planning that stays readable under pressure.

- Estimates, staffing, chargeability, and timelines in one workspace with sharper structure for day-to-day planning. + Estimates, staffing, chargeability, and timelines in one workspace with sharper + structure for day-to-day planning.

Visibility

-

Clearer data density, stronger contrast, faster scanning.

+

+ Clearer data density, stronger contrast, faster scanning. +

Planning

-

Dynamic staffing, resources, and chargeability in one flow.

+

+ Dynamic staffing, resources, and chargeability in one flow. +

Control

-

Theme-aware UI that works in bright and dark environments.

+

+ Theme-aware UI that works in bright and dark environments. +

@@ -108,7 +120,9 @@ export default function SignInPage() {
-

Welcome Back

+

+ Welcome Back +

{mfaRequired ? "Two-Factor Authentication" : "Sign in to CapaKraken"}

@@ -189,7 +203,8 @@ export default function SignInPage() { required />

- Open your authenticator app (e.g. Google Authenticator, Authy) and enter the current code. + Open your authenticator app (e.g. Google Authenticator, Authy) and enter the + current code.

)} @@ -212,7 +227,6 @@ export default function SignInPage() { )} -