diff --git a/src/app/page.tsx b/src/app/page.tsx
index db9638df..2f22f5aa 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -1,11 +1,18 @@
-import { redirect } from 'next/navigation';
+'use client';
+
+import { useEffect } from 'react';
+import { useRouter } from 'next/navigation';
export default function Home() {
- redirect('/dashboard');
+ const router = useRouter();
+
+ useEffect(() => {
+ router.replace('/dashboard');
+ }, [router]);
return (
- LTI ERP
+
);
}
diff --git a/src/components/helper/RequireAuth.tsx b/src/components/helper/RequireAuth.tsx
index 53853b96..22b22b03 100644
--- a/src/components/helper/RequireAuth.tsx
+++ b/src/components/helper/RequireAuth.tsx
@@ -38,11 +38,17 @@ const RequireAuth = ({ children }: RequireAuthProps) => {
// Explicitly handle 401 redirect from the component level
useEffect(() => {
if (userErrorResponse?.response?.status === 401) {
+ // Clear cache to prevent stale data from rendering children
+ // mutate('/sso/userinfo', undefined, { revalidate: false }); // Optional: if using global mutate
+ setUser(undefined);
redirectToSSO();
}
- }, [userErrorResponse]);
+ }, [userErrorResponse, setUser]);
- if (isLoadingUserResponse && !userResponse && !userErrorResponse) {
+ if (
+ (isLoadingUserResponse && !userResponse && !userErrorResponse) ||
+ (!userResponse && !userErrorResponse)
+ ) {
return (
diff --git a/src/lib/auth-helper.ts b/src/lib/auth-helper.ts
index 97d31a9f..bf05b70e 100644
--- a/src/lib/auth-helper.ts
+++ b/src/lib/auth-helper.ts
@@ -10,9 +10,9 @@ export const redirectToSSO = () => {
const lastRedirect = sessionStorage.getItem('auth_redirect_timestamp');
const now = Date.now();
- // Loop protection: allow redirect only if last one was > 2 seconds ago
+ // Loop protection: allow redirect only if last one was > 5 seconds ago
// or if no redirect has happened yet.
- if (!lastRedirect || now - parseInt(lastRedirect, 10) > 2000) {
+ if (!lastRedirect || now - parseInt(lastRedirect, 10) > 5000) {
sessionStorage.setItem('auth_redirect_timestamp', now.toString());
// const ssoLoginUrl = `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${window.location.href}`;