add maintenance page
This commit is contained in:
@@ -1,4 +1,9 @@
|
|||||||
import { Outlet, ScrollRestoration, useLocation, useNavigate } from 'react-router-dom';
|
import {
|
||||||
|
Outlet,
|
||||||
|
ScrollRestoration,
|
||||||
|
useLocation,
|
||||||
|
useNavigate,
|
||||||
|
} from 'react-router-dom';
|
||||||
import { useEffect, useState } from 'react';
|
import { useEffect, useState } from 'react';
|
||||||
import { supabase } from '@imphnen-frontend-service/service';
|
import { supabase } from '@imphnen-frontend-service/service';
|
||||||
|
|
||||||
@@ -27,14 +32,21 @@ export default function RootLayout() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check Supabase session
|
// Check Supabase session
|
||||||
const { data: { session }, error } = await supabase.auth.getSession();
|
const {
|
||||||
|
data: { session },
|
||||||
|
error,
|
||||||
|
} = await supabase.auth.getSession();
|
||||||
|
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error('[Layout] Session error:', error);
|
console.error('[Layout] Session error:', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public auth pages (login, signup, forgot-password, reset-password) - allow unauthenticated access
|
// Public auth pages (login, signup, forgot-password, reset-password) - allow unauthenticated access
|
||||||
const isPublicAuthPage = pathname === '/auth/login' || pathname === '/auth/signup' || pathname === '/auth/forgot-password' || pathname === '/auth/reset-password';
|
const isPublicAuthPage = pathname === '/maintenance';
|
||||||
|
// pathname === '/auth/login' ||
|
||||||
|
// pathname === '/auth/signup' ||
|
||||||
|
// pathname === '/auth/forgot-password' ||
|
||||||
|
// pathname === '/auth/reset-password';
|
||||||
|
|
||||||
if (isPublicAuthPage) {
|
if (isPublicAuthPage) {
|
||||||
// If already authenticated and not on password reset pages, redirect to dashboard
|
// If already authenticated and not on password reset pages, redirect to dashboard
|
||||||
@@ -56,7 +68,8 @@ export default function RootLayout() {
|
|||||||
|
|
||||||
// Require authentication for all other routes
|
// Require authentication for all other routes
|
||||||
if (!session) {
|
if (!session) {
|
||||||
navigate('/auth/login', { replace: true });
|
navigate('/maintenance', { replace: true });
|
||||||
|
// navigate('/auth/login', { replace: true });
|
||||||
setIsChecking(false);
|
setIsChecking(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
export default function MaintenancePage() {
|
||||||
|
return (
|
||||||
|
<div className="flex justify-center items-center min-h-screen bg-gray-50 dark:bg-gray-950 px-4">
|
||||||
|
<div className="text-center">
|
||||||
|
<h1 className="text-6xl font-bold text-yellow-600 mb-4">🚧</h1>
|
||||||
|
<h2 className="text-3xl font-semibold mb-2">We'll be back soon!</h2>
|
||||||
|
<p className="text-gray-600">
|
||||||
|
Our site is currently undergoing scheduled maintenance.
|
||||||
|
<br />
|
||||||
|
Thank you for your patience.
|
||||||
|
</p>
|
||||||
|
<a
|
||||||
|
href="/"
|
||||||
|
className="mt-4 inline-block text-primary-600 hover:underline"
|
||||||
|
>
|
||||||
|
Back to Homepage
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user